(57)【特許請求の範囲】
【請求項１】
ホストＣＰＵカードと、ＰＣＩファンクションを内蔵したＰＣＩデバイスとがＰＣＩバスを介して接続されたシステムに対し、上記ＰＣＩファンクションまたはＰＣＩデバイスをコンフィギュレーションした場合に異常があると、異常対象のＰＣＩファンクションまたはＰＣＩデバイスを上記システムから切り離すＰＣＩバス不良個所切り離し方法において、
上記システム立ち上げ時に上記各ＰＣＩファンクションまたは各ＰＣＩデバイス毎に順次コンフィギュレーションを実行する第１のステップと、
上記コンフィギュレーション中に異常があると、上記ホストＣＰＵカード及び全てのＰＣＩファンクションまたはＰＣＩデバイスをリセットする第２のステップと、
上記リセット後に異常があったＰＣＩファンクションまたはＰＣＩデバイスを切り離して、残りの各ＰＣＩファンクションまたは各ＰＣＩデバイスに対し順次コンフィギュレーションを実行する第３のステップと、
第３のステップでコンフィギュレーションを実行しても異常が解消しない場合は、第２のステップへ戻って上記ホストＣＰＵカード及び全てのＰＣＩファンクションまたはＰＣＩデバイスに対してリセットを実行するよう、第２と第３のステップを所定回数または異常が解消するまで繰り返し行う第５のステップとを上記ホストＣＰＵカードにて行うことにより、複数の異常ＰＣＩファンクションまたはＰＣＩデバイスをシステムから切り離し可能としたことを特徴とするＰＣＩバス不良個所切り離し方法。
【請求項２】
請求項１のＰＣＩバス不良個所切り離し方法において、第２のステップでリセットした後に、第１のステップに戻り再度、全てのＰＣＩファンクションまたはＰＣＩデバイスに対してコンフィギュレーションするよう第１と第２のステップを少なくとも１回繰り返し、異常が解消しないと第３のステップへ移行する第４のステップを含めたことを特徴とするＰＣＩバス不良個所切り離し方法。
【請求項３】
請求項１または請求項２のＰＣＩバス不良個所切り離し方法において、第３のステップを実行しても異常が解消しない場合、あるいは、第３のステップを実行してから所望時間後に異常が解消しない場合、または、第１〜第３ステップのいずれか１つのステップが実行できない場合は、ホストＣＰＵカードの異常と判定する第６のステップを含めたことを特徴とするＰＣＩバス不良個所切り離し方法。
【請求項４】
請求項１〜３のいずれか１項に記載のＰＣＩバス不良個所切り離し方法を実行させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＰＣＩバス仕様に準拠したＰＣＩバス不良箇所切り離し方法に関するもので、特にＰＣＩバス上にＨ／Ｗの追加をする事なく、ＰＣＩバス上の不良発生デバイス／ファンクションを論理的に切り離してシステムを立ち上げ、システムの連続稼動性を向上するものである。
【０００２】
【従来の技術】
図１２は例えば特開平１１−１９１０７３号公報に示されたＰＣＩバス処理装置を示す構成図である。図において、２０はＰＣＩバス処理装置であり、２１はＰＣＩバス上のトランザクションの開始を検出するトランザクション開始検出回路であり、ＰＣＩバス信号のＦＲＡＭＥ＃を入力する。２２はＰＣＩバス上のアドレス／データ線及びコマンド／バイトイネーブル線上の情報を保持する保持レジスタであり、２３はＰＣＩバス上の異常を検出する異常検出回路であり、２４は有効か否かを示すｖａｌｉｄｂｉｔを有し、異常が発生した時のアドレス及びコマンド情報を格納する格納レジスタ、２５はＰＣＩバスインタフェースであり、すべてのＰＣＩバス信号を入力する。
【０００３】
次に動作について説明する。
（１）ＰＣＩバス上のバスマスタがＰＣＩバス上にトランザクションを開始すると、ＰＣＩバス処理装置２０内のトランザクション開始検出回路はトランザクションの開始を検出し、保持レジスタ２２に通知し、保持レジスタ２２はアドレス／コマンド情報を格納する。
（２）次に異常検出回路２３はＰＣＩバス上のトランザクションを監視し、異常を検出すると保持レジスタ２２の内容を格納レジスタ２４に格納すると同時にｖａｌｉｄｂｉｔを有効にする。
【０００４】
（３）そしてＰＣＩバス上で異常の報告を受けたホストＣＰＵ（不図示）はＰＣＩバス処理装置２０内の格納レジスタ２４をＰＣＩバスを介してリードする。
（４）ＰＣＩバス処理装置２０内のＰＣＩバスインタフェース２５はホストＣＰＵからのＰＣＩリードトランザクションを受けて、ｖａｌｉｄｂｉｔが有効な場合のみ格納レジスタ２４の値をホストＣＰＵに返す。
一方、ｖａｌｉｄｂｉｔが無効な場合は”ＦＦＦＦＦＦＦＦｈ”を返す。
【０００５】
従って、異常発生時のアドレス及びコマンド情報をＰＣＩバスインターフェースによりＰＣＩバス上に出力するように構成したので、ホストＣＰＵは異常が発生した時に異常発生アドレスにより異常ＰＣＩファンクション、異常ＰＣＩデバイスを特定し、異常発生箇所の切り離しを行う。
【０００６】
【発明が解決しようとする課題】
従来のＰＣＩバス処理装置による異常個所の特定は以上のように行われているので、ＰＣＩのトランザクションを解析するという特殊なＨ／Ｗ回路の追加が必要であった。
【０００７】
また、ＰＣＩバス上に回路を接続する為、ＰＣＩバス上の電気的負荷となり、ＰＣＩバスの拡張スロットを１つ占有してしまうという課題があった。
【０００８】
また、最初から異常であるＰＣＩデバイス／ファンクションに対してＰＣＩコンフィギュレーションサイクルを実行した場合、ＰＣＩデバイス／ファンクションからは初期化未完了を示すリトライが無限に繰り返されることとなるが、これ自体はＰＣＩのトランザクションとしては正常であるため従来のＰＣＩバス処理装置では検出不可能であり、ホストＣＰＵとしても異常個所の特定が行えないという課題があった。
【０００９】
【課題を解決するための手段】
（１）請求項１記載の発明に係わるＰＣＩバス不良箇所切り離し方法は、ホストＣＰＵカードと、ＰＣＩファンクションを内蔵したＰＣＩデバイスとがＰＣＩバスを介して接続されたシステムに対し、上記ＰＣＩファンクションまたはＰＣＩデバイスをコンフィギュレーションした場合に異常があると、異常対象のＰＣＩファンクションまたはＰＣＩデバイスを上記システムから切り離すＰＣＩバス不良個所切り離し方法において、上記システム立ち上げ時に上記各ＰＣＩファンクションまたは各ＰＣＩデバイス毎に順次コンフィギュレーションを実行する第１のステップと、上記コンフィギュレーション中に異常があると、上記ホストＣＰＵカード及び全てのＰＣＩファンクションまたはＰＣＩデバイスをリセットする第２のステップと、上記リセット後に異常があったＰＣＩファンクションまたはＰＣＩデバイスを切り離して、残りの各ＰＣＩファンクションまたは各ＰＣＩデバイスに対し順次コンフィギュレーションを実行する第３のステップと、第３のステップでコンフィギュレーションを実行しても異常が解消しない場合は、第２のステップへ戻って上記ホストＣＰＵカード及び全てのＰＣＩファンクションまたはＰＣＩデバイスに対してリセットを実行するよう、第２と第３のステップを所定回数または異常が解消するまで繰り返し行う第５のステップとを上記ホストＣＰＵカードにて行うことにより、複数の異常ＰＣＩファンクションまたはＰＣＩデバイスをシステムから切り離し可能としたものである。
【００１０】
（２）請求項２記載の発明に係わるＰＣＩバス不良箇所切り離し方法は、請求項１のＰＣＩバス不良個所切り離し方法において、第２のステップでリセットした後に、第１のステップに戻り再度、全てのＰＣＩファンクションまたはＰＣＩデバイスに対してコンフィギュレーションするよう第１と第２のステップを少なくとも１回繰り返し、異常が解消しないと第３のステップへ移行する第４のステップを含めたものである。
【００１１】
（３）請求項３記載の発明に係わるＰＣＩバス不良箇所切り離し方法は、請求項１または請求項２のＰＣＩバス不良個所切り離し方法において、第３のステップを実行しても異常が解消しない場合、あるいは、第３のステップを実行してから所望時間後に異常が解消しない場合、または、第１〜第３ステップのいずれか１つのステップが実行できない場合は、ホストＣＰＵカードの異常と判定する第６のステップを含めたものである。
【００１２】
（４）請求項４記載の発明に係わるＰＣＩバス不良箇所切り離し方法を実行するプログラムは、請求項１〜３のいずれか１項に記載のＰＣＩバス不良個所切り離し方法を実行させるためのプログラムとしたものである。
【００１３】
【発明の実施の形態】
以下、この発明の実施の一形態を説明する。
実施の形態１．
図１はＰＣＩバスを有するシステムの構成図で、１０はＰＣＩバスで、ホストＣＰＵカード１１とアドインカード１２，１３，１４とが接続されている。ホストＣＰＵカード１１にはホストＣＰＵ１１ａ及び図示しないがメモリ、インターフェース等の各種の計算機機能が内蔵されていてホストＣＰＵ機能を形成している。また、各種の必要なＳ／Ｗ１１ｂも内蔵されていて、本発明のＰＣＩバス不良箇所切り離し方法のソフトも内蔵されている。アドインカード１２，１３，１４には、例えばＬＳＩで構成されたＰＣＩデバイス１２ａ，１３ａ，１４ａが設けられ、それらのＰＣＩデバイス内には各種の機能を有するＰＣＩファンクション１２ｂ，１２ｃ，１３ｂ，１４ｂ，１４ｃを内蔵している。
【００１４】
図２はこの発明の実施の形態１によるＰＣＩバス不良箇所切り離し方法を実現するブロック図であり、図において、１はＰＣＩバスに接続されるホストＣＰＵカード上で動作し、ＰＣＩコンフィギュレーションサイクルを実行するＰＣＩコンフィギュレーションサイクル実行部、２はこれからＰＣＩコンフィギュレーションサイクルを実行するアクセスアドレス（ＰＣＩバス番号／デバイス番号／ファンクション番号の組み合わせ）を格納しておくアクセスアドレス格納領域、３は全ファンクションの論理的切り離し状況を管理するファンクション管理テーブル（図６参照）である。
【００１５】
４はホストＣＰＵカード上のＣＰＵ及びその上で動作するソフトウェアの正常動作を監視するＷＤＴ回路、５はホストＣＰＵカード上のＣＰＵ及びその上で動作するソフトウェアが正常に動作している場合に、ソフトウェアにより定期的に書込みが行われるＷＤＴクリアレジスタであり、書き込みが行われる事によりＷＤＴのカウントアップ前にＷＤＴカウンタ値のクリアを行う。なお、アドインカード上のＣＰＵやその上で動作するソフトウェアの動作が異常の場合にはホストＣＰＵカード上のＣＰＵ及びその上で動作するソフトウェアの異常として現れ、結果としてＷＤＴクリアレジスタ５への書込みが停止する。従ってＷＤＴ回路４によってアドインカード側も監視している事となる。
【００１６】
６はＷＤＴ回路４がカウントアップした場合に起動され、システムにウェイクアップリセット（Ｗａｋｅ  ｕｐ  ｒｅｓｅｔ）を発行するリセット生成回路、７はパワーＯＮによるリセット解除か、ウェイクアップリセットによるリセット解除かを示すリセット要因レジスタであり、ＰＣＩコンフィギュレーションサイクル実行部１より読み込みが可能である。
なお、アクセスアドレス格納領域２とファンクション管理テーブル３のメモリ上に内容が格納され、ウェイクアップリセットをしてもその内容が保持される。
【００１７】
次にＷＤＴ回路４の動作について説明する。
図３、図４はＷＤＴ回路４のカウンタ値の動きの一例を示す図である。
（１）まず図３（ａ）において、パワーＯＮリセット解除（時刻：Ｔ１）にてＷＤＴ回路４がカウントし始める。
（２）ホストＣＰＵとホストＣＰＵ上で動作しているソフトウェアが正常に動作しておりＷＤＴカウントアップ以前にソフトウェアによりＷＤＴクリアレジスタ５に書き込みを行うことによりＷＤＴカウンタをクリアしている。この間にコンフィギュレーションが完了し、システムが立ち上がる。
【００１８】
（３）図３（ｂ）のように、あるＰＣＩファンクションに異常があり、その為、そのＰＣＩファンクションへのＰＣＩコンフィギュレーション処理が時刻Ｔ２で停止したとすると、ソフトウェアによるＷＤＴクリアレジスタ５への書込みが停止し、期間Ｐ１後にはＷＤＴカウンタ値はカウントアップし、１回目のＷＤＴカウントアップであるのでウェイクアップリセットの実施をリセット生成回路６に要求し、リセット生成回路６によりウェイクアップリセットが実施される（時刻：Ｔ３）。
（４）ウェイクアップリセット解除後に再度ＷＤＴ回路４がカウントし始めるが、今回は異常ＰＣＩファンクションへのコンフィギュレーションをパスすることにより、ＷＤＴカウントアップ前にコンフィギュレーションが完了し、ソフトウェアによりＷＤＴクリアレジスタ５をクリアするので、システムが正常に立ち上がる。
【００１９】
（５）ＰＣＩファンクションに異常が発生し異常が復旧していない場合、図４（ａ）のように、ソフトウェアによるＷＤＴクリアレジスタ５への書き込みが停止したままであるので、期間Ｐ２（＝Ｐ１）後には再度ＷＤＴカウンタ値はカウントアップし、今回が連続した２回目のＷＤＴカウントアップであるので、ホストＣＰＵあるいは共通部であるＰＣＩバスそのものの機能停止と判断し、例えばアラーム信号を送出するなどの異常判定処理を行う（時刻Ｔ５）。
（６）なお、図４（ｂ）のように期間Ｐ２の間に一度でもソフトウェアによるＷＤＴクリアレジスタ５への書き込みが行われた場合は、次のＷＤＴカウントアップは１回目とみなし、ウェイクアップリセットとなる。（期間Ｐ２の間にＷＤＴクリア処理が入ったために、連続２回目とならない。）
【００２０】
次に全体の処理フローについて説明する。
図５はＰＣＩコンフィギュレーションサイクル実行部１がＰＣＩバス上の各ファンクションをコンフィギュレーションする一例を示すフローチャート図である。まず全ＰＣＩバス／デバイス／ファンクションが正常かつ、リセット要因がパワーＯＮの場合を説明する。
【００２１】
（１）ＰＣＩコンフィギュレーションサイクル実行部１はリセット要因レジスタ７の内容を読み出し（ステップＳＴ１−１）、
（２）今回のリセット要因を調べ（ステップＳＴ１−２）、
（３）リセット要因がＷＤＴカウントアップによるウェイクアップリセット以外でなので、ファンクション管理テーブル３中の全ファンクションステータスを“０：正常”に初期化し（ステップＳＴ１−３）、
（４）全ＰＣＩバス／デバイス／ファンクションのコンフィギュレーション繰り返し処理に移り（ステップＳＴ１−４）、
（５）今回の繰り返し処理中にコンフィギュレーションする対象ファンクションステータスを調べ（ステップＳＴ１−５）、
【００２２】
（６）異常なしなので今回コンフィギュレーションする対象のアクセスアドレスをアクセスアドレス格納領域２に格納し（ステップＳＴ１−６）、
（７）対象ファンクションのＰＣＩコンフィギュレーション実行（ステップＳＴ１−７）、
（８）完了後にアクセスアドレス格納領域２をクリア（ステップＳＴ１−８）、全ＰＣＩバス／デバイス／ファンクション分をステップＳＴ１−４より繰り返し実行（ステップＳＴ１−９）により全ＰＣＩコンフィギュレーションを終了し、
（９）ＷＤＴカウントアップ前にＷＤＴクリアレジスタ５に書き込みを行う（ステップＳＴ１−１０）。（正常終了時でもＷＤＴカウントアップしないようにカウンタの値を決定している。）
【００２３】
次にＰＣＩバス番号＝０／デバイス番号＝１／ファンクション番号＝１で異常が発生している状態でパワーＯＮリセットからの流れを説明する。
（１）ステップＳＴ１−１〜ＳＴ１−６までは前述と全く同じである。
（２）ＰＣＩバス番号＝０／デバイス番号＝１／ファンクション番号＝１に対してＰＣＩコンフィギュレーションを実施すると（ステップＳＴ１−７）、
【００２４】
（３）ＰＣＩコンフィギュレーションサイクルが無限にリトライ処理を繰り返し、終了しないケースに陥る場合がある。（汎用のＰＣＩチップセットとＣＰＵを搭載し、ＣＰＵ上で動作するＳ／Ｗによりこの汎用ＰＣＩチップを初期化するようなＰＣＩターゲットカード（アドインカード）の場合、Ｓ／Ｗが正常に動作しないような異常が発生するとＰＣＩチップの初期化が完了しない。この場合にはホストＣＰＵカードからのＰＣＩコンフィギュレーションサイクルに対して無限にリトライ処理を繰り返す結果となる場合がある。）結果としてＷＤＴカウントアップ以前にＷＤＴクリアレジスタ５への書き込みを行う事ができないため、ウェイクアップリセットが発生する。
【００２５】
次に上記ウェイクアップリセット発生以降の流れを説明する。
（１）ＰＣＩコンフィギュレーションサイクル実行部１はリセット要因レジスタの内容を読み出し（ステップＳＴ１−１）、
（２）今回のリセット要因を調べ（ステップＳＴ１−２）、
（３）リセット要因がＷＤＴカウントアップによるウェイクアップリセットなのでアクセスアドレス格納領域２の内容を読み出し（ステップＳＴ１−１１）、
（４）格納内容を調べ（ステップＳＴ１−１２）、
（５）異常を生じたアクセスアドレスが格納されているのでそのアクセスアドレス格納領域２をクリア（ステップＳＴ１−１３）後、
【００２６】
（６）ウェイクアップリセット発生以前にアクセスしていた情報であるＰＣＩバス番号＝０／デバイス番号＝１／ファンクション番号＝１を元に、ファンクション管理テーブル３中の該当するファンクションステータスを“１：異常”にセットし（ステップＳＴ１−１４）、
（７）全ＰＣＩバス／デバイス／ファンクションのコンフィギュレーション繰り返し処理に移り（ステップＳＴ１−４）、
（８）今回の繰り返し処理中にコンフィギュレーションする対象ファンクションステータスを調べ（ステップＳＴ１−５）、
【００２７】
（９）ＰＣＩバス番号＝０／デバイス番号＝１／ファンクション番号＝１のファンクションステータスが”１：異常”にセットされているので、ＰＣＩバス番号＝０／デバイス番号＝１／ファンクション番号＝１に対するＰＣＩコンフィギュレーション処理を省略し、残りの全ＰＣＩバス／デバイス／ファンクション分をステップＳＴ１−４より繰り返し実行（ステップＳＴ１−９）により全ＰＣＩコンフィギュレーションを終了し、
（１０）ＷＤＴカウントアップ前にＷＤＴクリアレジスタ５に書き込みを行う（ステップＳＴ１−１０）。
【００２８】
（１１）残りの全ＰＣＩバス／デバイス／ファンクションのＰＣＩコンフィギュレーション中に他のファンクションで同様の異常となった場合には、ＰＣＩコンフィギュレーション処理で停止し、連続２回目のＷＤＴカウントアップ後にホストＣＰＵ機能が停止していると判定する。
つまり、最初に異常を検出した１つのＰＣＩファンクションの切り離し処理のみを行い、複数のＰＣＩファンクションが異常の場合には、ホストＣＰＵあるいは共通部であるＰＣＩバスそのものの機能停止と判断し、アラーム等の送出処理を行う。
【００２９】
図６にＰＣＩバス番号＝０／デバイス番号＝１／ファンクション番号＝１で異常が発生してＰＣＩコンフィギュレーション処理を省略した後のファンクション管理テーブル３の例を示す。
【００３０】
このように、ＷＤＴカウントアップによるウェイクアップリセットを設け、異常ファンクションに対するＰＣＩコンフィギュレーションサイクル処理の停止からのリセット復帰をできる様にし、さらに、アクセスアドレス格納領域２とファンクション管理テーブル３により、異常となったＰＣＩコンフィギュレーションサイクルのアクセス先（ＰＣＩバス番号／デバイス番号／ファンクション番号）を格納・保持する手段を設け、全ＰＣＩコンフィギュレーション完了後に始めてＷＤＴクリア処理を行う為、１つの異常ＰＣＩファンクションの検出と、その１つのＰＣＩファンクションの論理的に切り離しが可能となり、正常部分でのシステムの連続稼動性の向上が可能となる。
【００３１】
また、ＰＣＩのトランザクションを解析するという特殊なＨ／Ｗ回路の追加も必要ない。
【００３２】
また、ＰＣＩバス上の電気的負荷とならないので、ＰＣＩバスの拡張スロットを１つ占有する事も無いため、ＰＣＩバス拡張スロットを有効に使用できる。
【００３３】
実施の形態２．
実施の形態１では図４（ａ）において、Ｔ３時点で１回目のＷＤＴカウントアップによりウェイクアップリセットをした後、異常のＰＣＩファンクションを除いて、残りのＰＣＩファンクションに対してＰＣＩコンフィギュレーションを実行するようにしたが、たまたまノイズの影響などで過渡的に異常が発生し、正常のＰＣＩファンクションが異常とみなされることがある。
この発明の実施の形態２では、異常のあるアドレスのＰＣＩファンクションを除かず全アドレスのＰＣＩファンクションに対してＰＣＩコンフィギュレーションを再度実行する。
つまり、図４（ａ）のＰ１の期間に相当する動作を少なくとも一回は繰り返すようにし、その後にＰ２の期間の処理に移行する。
【００３４】
実施の形態３．
次に、この発明の実施の形態３について説明する。実施の形態３ではブロック図は実施の形態１での図２と同様であり、実施の形態１と異なるのはＰＣＩコンフィギュレーションサイクル実行部１の処理を示す図７のフローチャートと、図８の使用するファンクション管理テーブルの内容である。
【００３５】
次に動作について説明する。
図７はこの発明の実施の形態３によるＰＣＩコンフィギュレーションサイクル実行部１がファンクション管理テーブル３を使用して処理を行う一例を示すフローチャート図である。図７において、実施の形態１と同等の処理ステップには図５と同一のステップ番号を付けて重複説明を省略する。また、図７において、図５と異なる部分についてのみ新たなステップ番号ＳＴ２−１５を付けて説明する。
【００３６】
全ＰＣＩバス／デバイス／ファンクションが正常の場合には実施の形態１と同様の処理になる為に説明を省略する。
また、ＰＣＩバス番号＝０／デバイス番号＝１／ファンクション番号＝１で異常が発生している状態でのパワーＯＮリセットからウェイクアップリセット１回目が発生するまでの流れも実施の形態１と同様の処理になるために説明を省略する。
【００３７】
次に上記ウェイクアップリセット１回目発生以降の流れを説明する。
（１）ステップＳＴ１−１〜ＳＴ１−１４までは実施の形態１と同様であり、この時点ではＰＣＩバス番号＝０／デバイス番号＝１／ファンクション番号＝１に該当するファンクション管理テーブル３中のファンクションステータスは“１：異常”にセットされている。
（２）この後、実施の形態３ではＷＤＴクリアレジスタ５への書き込み処理を行い（ステップＳＴ２−１５）、
（３）全ＰＣＩバス／デバイス／ファンクションのコンフィギュレーション繰り返し処理に移り（ステップＳＴ１−４）、
（４）今回の繰り返し処理中にコンフィギュレーションする対象ファンクションステータスを調べ（ステップＳＴ１−５）、
（５）ＰＣＩバス番号＝０／デバイス番号＝１／ファンクション番号＝１のファンクションステータスが”１：異常”にセットされているので、ＰＣＩバス番号＝０／デバイス番号＝１／ファンクション番号＝１に対するＰＣＩコンフィギュレーション処理を省略し、残りの全ＰＣＩバス／デバイス／ファンクション分をステップＳＴ１−４より繰り返し実行する（ステップＳＴ１−９）。
【００３８】
（６）ここで、残りの全ＰＣＩバス／デバイス／ファンクションのＰＣＩコンフィギュレーション中に他のＰＣＩファンクションで同様の異常となった場合として、ＰＣＩバス番号＝０／デバイス番号＝１／ファンクション番号＝３の異常を想定する（図８参照）。このＰＣＩバス番号＝０／デバイス番号＝１／ファンクション番号＝３に対するＰＣＩコンフィギュレーション処理が無限にリトライを繰り返し、終了しない。結果として再度ＷＤＴカウンタがカウントアップする。
（７）ここで実施の形態１と異なる点はステップＳＴ２−１５にて一度ＷＤＴクリアレジスタ５への書き込みを実施しているため、今回のカウントアップでもウェイクアップリセットが発生する点である。
【００３９】
（８）ウェイクアップリセット後は再度ステップＳＴ１−１より開始し、
（９）最終的にはＰＣＩバス番号＝０／デバイス番号＝１／ファンクション番号＝１とＰＣＩバス番号＝０／デバイス番号＝１／ファンクション番号＝３の両ファンクションの異常を検出し、両ファンクションに対するＰＣＩコンフィギュレーション処理を省略することにより、両ファンクションをＰＣＩバスより論理的に切り離す。
【００４０】
図８にＰＣＩバス番号＝０／デバイス番号＝１／ファンクション番号＝１と、ＰＣＩバス番号＝０／デバイス番号＝１／ファンクション番号＝３で異常が発生してＰＣＩコンフィギュレーション処理を省略した後のファンクション管理テーブル３の例を示す。
【００４１】
このように、ＷＤＴカウントアップによるウェイクアップリセットを設け、異常ファンクションに対するＰＣＩコンフィギュレーションサイクル処理の停止からのリセット復帰をできる様にし、さらに、アクセスアドレス格納領域２とファンクション管理テーブル３により、異常となったＰＣＩコンフィギュレーションサイクルのアクセス先（ＰＣＩバス番号／デバイス番号／ファンクション番号）を格納・保持する手段を設け、異常ファンクションを検出する度にＷＤＴクリア処理を行う為、複数または全ての異常ＰＣＩファンクションの検出と、それら複数または全ての異常ＰＣＩファンクションを論理的に切り離し可能となり、正常部分でのシステムの連続稼動性の向上が可能となる。
【００４２】
以上のように複数の異常のＰＣＩファンクションがあり、これらの異常のある全てのＰＣＩファンクションが切り離されるまで、コンフィギュレーションを繰り返してコンフィギュレーションを完了することができる。
しかし、ホストＣＰＵカードの故障があると、コンフィギュレーション動作を繰り返すので、これを防止するため所定回数コンフィギュレーションするとホストＣＰＵあるいは共通部であるＰＣＩバスそのものの機能停止と判定し、アラーム等を送出してコンフィギュレーションを中止するようにしてもよい。
【００４３】
実施の形態４．
システム構成としてＰＣＩバス上に実装されるＨ／Ｗとして１カード＝１デバイス＝１ファンクションあるいは、１カード＝１デバイス＝複数ファンクションの構成が多く、また、異常となる単位もカード単位、つまり、デバイス単位となる場合が多い。この実施の形態４では、ＰＣＩデバイス単位での論理的切り離しを行うようにし、システム立ち上がり時間を更に短縮するものである。
【００４４】
図９はこの発明の実施の形態４によるＰＣＩバス不良箇所切り離し方法を実現するブロック図であり、図において、実施の形態３と同等のブロックには図２と同一の番号を付けて重複説明を省略する。また、図９において、図２と異なる部分についてのみ３０番台の新たなブロック番号を付けて説明する。
実施の形態４ではＰＣＩバスからの論理的切り離しの単位をＰＣＩデバイスとするので、実施の形態３でのファンクション管理テーブル３は、デバイス管理テーブル３３となる。その他のブロックは実施の形態３と同様である。
【００４５】
次に動作について説明する。
図１０はこの発明の実施の形態４によるＰＣＩコンフィギュレーションサイクル実行部１がデバイス管理テーブル３３を使用して処理を行う一例を示すフローチャート図である。図において、実施の形態３と同等の処理ステップには図７と同一のステップ番号を付けて重複説明を省略する。また、図１０において、図７と異なる部分についてのみ新たなステップ番号ＳＴ３−３，ＳＴ３−５，ＳＴ３−１４を付けて説明する。
【００４６】
全ＰＣＩバス／デバイス／ファンクションが正常の場合には実施の形態３と同様の処理になる為に説明を省略する。
ＰＣＩバス番号＝０／デバイス番号＝１／ファンクション番号＝１で異常が発生している状態でパワーＯＮリセットからの流れを説明する。
（１）ステップＳＴ１−１〜ＳＴ１−２までは実施の形態３と全く同じである。
（２）リセット要因がＷＤＴカウントアップによるウェイクアップリセット以外なのでデバイス管理テーブル３３中の全デバイスステータスを“０：正常”に初期化し（ステップＳＴ３−３）、
【００４７】
（３）ステップＳＴ１−４〜ステップＳＴ１−６は実施の形態３と同様の処理を行い、ＰＣＩバス番号＝０／デバイス番号＝１／ファンクション番号＝１に対してＰＣＩコンフィギュレーションを実施すると（ステップＳＴ１−７）、ＰＣＩコンフィギュレーションサイクルが無限にリトライ処理を繰り返し、終了しないケースに陥る場合がある。結果としてＷＤＴカウントアップ以前にＷＤＴクリアレジスタ５への書き込みを行う事ができないため、ウェイクアップリセットが発生する。
【００４８】
次に上記ウェイクアップリセット発生以降の流れを説明する。
（１）ステップＳＴ１−１〜ＳＴ１−１３までは実施の形態３と同様に、ウェイクアップリセット発生以前にアクセスしていた情報であるＰＣＩバス番号＝０／デバイス番号＝１／ファンクション番号＝１を元に、デバイス管理テーブル３３中の該当するデバイスステータスを“１：異常”にセットし（ステップＳＴ３−１４）、
（２）全ＰＣＩバス／デバイス／ファンクションのコンフィギュレーション繰り返し処理に移り（ステップＳＴ１−４）、
（３）今回の繰り返し処理中にコンフィギュレーションする対象デバイスステータスを調べ（ステップＳＴ３−５）、
【００４９】
（４）ＰＣＩバス番号＝０／デバイス番号＝１のデバイスステータスが”１：異常”にセットされているので、ＰＣＩバス番号＝０／デバイス番号＝１の全ファンクションに対するＰＣＩコンフィギュレーション処理を省略し、残りの全ＰＣＩバス／デバイス／ファンクション分をステップＳＴ１−４より繰り返し実行（ステップＳＴ１−９）により全ＰＣＩコンフィギュレーションを終了し、
（５）ＷＤＴカウントアップ前にＷＤＴクリアレジスタ５に書き込みを行う（ステップＳＴ１−１０）。
【００５０】
（６）残りの全ＰＣＩバス／デバイス／ファンクションのＰＣＩコンフィギュレーション中に他のデバイスで同様の異常となった場合には、デバイス管理テーブル３３中の該当するデバイスステータスを“１：異常”にセットし、再度ステップＳＴ１−１より再開する。
この場合でもデバイス管理テーブル３３はクリアされずに保持されている為、前回、既に異常のためにＰＣＩコンフィギュレーション処理を省略したデバイスは、今回も再度省略される。
【００５１】
図１１にＰＣＩバス番号＝０／デバイス番号＝１／ファンクション番号＝１と、ＰＣＩバス番号＝０／デバイス番号＝３／ファンクション番号＝１で異常が発生してＰＣＩコンフィギュレーション処理を省略した後のデバイス管理テーブル３３の例を示す。なお、コンフィギュレーションする場合や異常を検出するのはファンクション単位であるが、切り離しはデバイス単位であるので、図１１のデバイス管理テーブル３３にはファンクション番号が表示されない。
【００５２】
このように、ＷＤＴカウントアップによるウェイクアップリセットを設け、異常デバイスに対するＰＣＩコンフィギュレーションサイクル処理の停止からのリセット復帰をできる様にし、さらに、アクセスアドレス格納領域２とデバイス管理テーブル３３により、異常となったＰＣＩコンフィギュレーションサイクルのアクセス先（ＰＣＩバス番号／デバイス番号）を格納・保持する手段を設け、異常デバイスを検出する度にＷＤＴクリア処理を行う為、複数または全ての異常ＰＣＩデバイスの検出と、それら複数または全ての異常ＰＣＩデバイスを論理的に切り離し可能となり、正常部分でのシステムの連続稼動性の向上が可能となる。
【００５３】
また、ＰＣＩデバイス単位での論理的切り離しによって、ＰＣＩファンクション単位での論理的切り離しよりもシステム立ち上がり時間が短縮される。
【００５４】
上記各実施の形態ではＰＣＩバスについて説明したが、最近よく使用されているＣｏｍｐａｃｔＰＣＩバスについてもこの発明が適用できる。
【００５５】
【発明の効果】
（１）以上のように、請求項１記載の発明によれば、１つの異常ＰＣＩファンクションの検出と、その１つのＰＣＩファンクションの論理的に切り離しが可能となり、正常部分でのシステムの連続稼動性を向上させる効果がある。
【００５６】
（２）請求項２記載の発明によれば、異常があっても全てのＰＣＩファンクションに対しコンフィギュレーションを少なくとも１回繰り返すことにより、ノイズの影響などで過渡的に異常が発生しても、正常のＰＣＩファンクションが異常とみなされることを防止する効果がある。
【００５７】
（３）また、請求項１及び２記載の発明によれば、異常があれば順次残りのＰＣＩファンクションのコンフィギュレーションを行うことにより、複数のまたは全ての異常ＰＣＩファンクションの検出と、それら複数のまたは全ての異常ＰＣＩファンクションの論理的に切り離しが可能となり、正常なＰＣＩファンクションだけで立ち上げることができ、正常部分でのシステムの連続稼動性を向上させる効果がある。
【００５８】
（４）請求項３記載の発明によれば、ＰＣＩデバイス単位で異常を検出し、そのＰＣＩデバイスを切り離すようにしたので、正常部分でのシステムの連続稼動性を向上させる効果がある。
【００５９】
（５）請求項４記載の発明によれば、正常部分でのシステムの連続稼動性を向上するプログラムとした効果がある。
【００６０】
【図面の簡単な説明】
【図１】  本発明の実施の形態１によるＰＣＩバスシステムの構成図である。
【図２】  本発明の実施の形態１によるＰＣＩ不良箇所切り離し方法の一例を示すブロック図である。
【図３】  本発明の実施の形態１によるＰＣＩ不良箇所切り離し方法で使用するＷＤＴ回路の動作例である。
【図４】  本発明の実施の形態１によるＰＣＩ不良箇所切り離し方法で使用するＷＤＴ回路の動作例である。
【図５】  本発明の実施の形態１によるＰＣＩ不良箇所切り離し方法の一例を示すフローチャート図である。
【図６】  本発明の実施の形態１によるＰＣＩ不良箇所切り離し方法で使用するファンクション管理テーブルの一例である。
【図７】  本発明の実施の形態３によるＰＣＩ不良箇所切り離し方法の一例を示すフローチャート図である。
【図８】  本発明の実施の形態３によるＰＣＩ不良箇所切り離し方法で使用するファンクション管理テーブルの一例である。
【図９】  本発明の実施の形態４によるＰＣＩ不良箇所切り離し方法の一例を示すブロック図である。
【図１０】  本発明の実施の形態４によるＰＣＩ不良箇所切り離し方法の一例を示すフローチャート図である。
【図１１】  本発明の実施の形態４によるＰＣＩ不良箇所切り離し方法で使用するデバイス管理テーブルの一例である。
【図１２】  従来例のＰＣＩバス処理装置の構成例である。
【符号の説明】
１  ＰＣＩコンフィギュレーションサイクル実行部
２  アクセスアドレス格納領域      ３  ファンクション管理テーブル
４  ＷＤＴ回路                    ５  ＷＤＴクリアレジスタ
６  リセット生成回路              ７  リセット要因レジスタ
１２，１３，１４  アドインカード
１２ａ，１３ａ，１４ａ  ＰＣＩデバイス
１２ｂ，１２ｃ，１３ｂ，１４ｂ，１４ｃ  ＰＣＩファンクション
【図１】
0003644399.tif 000002
【図２】
0003644399.tif 000003
【図３】
0003644399.tif 000004
【図４】
0003644399.tif 000005
【図５】
0003644399.tif 000006
【図６】
0003644399.tif 000007
【図７】
0003644399.tif 000008
【図８】
0003644399.tif 000009
【図９】
0003644399.tif 000010
【図１０】
0003644399.tif 000011
【図１１】
0003644399.tif 000012
【図１２】
0003644399.tif 000013