JP3644399B2 - Pciバス不良個所切り離し方法およびそのプログラム - Google Patents
Pciバス不良個所切り離し方法およびそのプログラム Download PDFInfo
- Publication number
- JP3644399B2 JP3644399B2 JP2001089687A JP2001089687A JP3644399B2 JP 3644399 B2 JP3644399 B2 JP 3644399B2 JP 2001089687 A JP2001089687 A JP 2001089687A JP 2001089687 A JP2001089687 A JP 2001089687A JP 3644399 B2 JP3644399 B2 JP 3644399B2
- Authority
- JP
- Japan
- Prior art keywords
- pci
- abnormality
- function
- pci bus
- configuration
- 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
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Description
【発明の属する技術分野】
本発明は、PCIバス仕様に準拠したPCIバス不良箇所切り離し方法に関するもので、特にPCIバス上にH/Wの追加をする事なく、PCIバス上の不良発生デバイス/ファンクションを論理的に切り離してシステムを立ち上げ、システムの連続稼動性を向上するものである。
【0002】
【従来の技術】
図12は例えば特開平11−191073号公報に示されたPCIバス処理装置を示す構成図である。図において、20はPCIバス処理装置であり、21はPCIバス上のトランザクションの開始を検出するトランザクション開始検出回路であり、PCIバス信号のFRAME#を入力する。22はPCIバス上のアドレス/データ線及びコマンド/バイトイネーブル線上の情報を保持する保持レジスタであり、23はPCIバス上の異常を検出する異常検出回路であり、24は有効か否かを示すvalidbitを有し、異常が発生した時のアドレス及びコマンド情報を格納する格納レジスタ、25はPCIバスインタフェースであり、すべてのPCIバス信号を入力する。
【0003】
次に動作について説明する。
(1)PCIバス上のバスマスタがPCIバス上にトランザクションを開始すると、PCIバス処理装置20内のトランザクション開始検出回路はトランザクションの開始を検出し、保持レジスタ22に通知し、保持レジスタ22はアドレス/コマンド情報を格納する。
(2)次に異常検出回路23はPCIバス上のトランザクションを監視し、異常を検出すると保持レジスタ22の内容を格納レジスタ24に格納すると同時にvalidbitを有効にする。
【0004】
(3)そしてPCIバス上で異常の報告を受けたホストCPU(不図示)はPCIバス処理装置20内の格納レジスタ24をPCIバスを介してリードする。
(4)PCIバス処理装置20内のPCIバスインタフェース25はホストCPUからのPCIリードトランザクションを受けて、validbitが有効な場合のみ格納レジスタ24の値をホストCPUに返す。
一方、validbitが無効な場合は”FFFFFFFFh”を返す。
【0005】
従って、異常発生時のアドレス及びコマンド情報をPCIバスインターフェースによりPCIバス上に出力するように構成したので、ホストCPUは異常が発生した時に異常発生アドレスにより異常PCIファンクション、異常PCIデバイスを特定し、異常発生箇所の切り離しを行う。
【0006】
【発明が解決しようとする課題】
従来のPCIバス処理装置による異常個所の特定は以上のように行われているので、PCIのトランザクションを解析するという特殊なH/W回路の追加が必要であった。
【0007】
また、PCIバス上に回路を接続する為、PCIバス上の電気的負荷となり、PCIバスの拡張スロットを1つ占有してしまうという課題があった。
【0008】
また、最初から異常であるPCIデバイス/ファンクションに対してPCIコンフィギュレーションサイクルを実行した場合、PCIデバイス/ファンクションからは初期化未完了を示すリトライが無限に繰り返されることとなるが、これ自体はPCIのトランザクションとしては正常であるため従来のPCIバス処理装置では検出不可能であり、ホストCPUとしても異常個所の特定が行えないという課題があった。
【0009】
【課題を解決するための手段】
(1)請求項1記載の発明に係わるPCIバス不良箇所切り離し方法は、ホストCPUカードと、PCIファンクションを内蔵したPCIデバイスとがPCIバスを介して接続されたシステムに対し、上記PCIファンクションまたはPCIデバイスをコンフィギュレーションした場合に異常があると、異常対象のPCIファンクションまたはPCIデバイスを上記システムから切り離すPCIバス不良個所切り離し方法において、上記システム立ち上げ時に上記各PCIファンクションまたは各PCIデバイス毎に順次コンフィギュレーションを実行する第1のステップと、上記コンフィギュレーション中に異常があると、上記ホストCPUカード及び全てのPCIファンクションまたはPCIデバイスをリセットする第2のステップと、上記リセット後に異常があったPCIファンクションまたはPCIデバイスを切り離して、残りの各PCIファンクションまたは各PCIデバイスに対し順次コンフィギュレーションを実行する第3のステップと、第3のステップでコンフィギュレーションを実行しても異常が解消しない場合は、第2のステップへ戻って上記ホストCPUカード及び全てのPCIファンクションまたはPCIデバイスに対してリセットを実行するよう、第2と第3のステップを所定回数または異常が解消するまで繰り返し行う第5のステップとを上記ホストCPUカードにて行うことにより、複数の異常PCIファンクションまたはPCIデバイスをシステムから切り離し可能としたものである。
【0010】
(2)請求項2記載の発明に係わるPCIバス不良箇所切り離し方法は、請求項1のPCIバス不良個所切り離し方法において、第2のステップでリセットした後に、第1のステップに戻り再度、全てのPCIファンクションまたはPCIデバイスに対してコンフィギュレーションするよう第1と第2のステップを少なくとも1回繰り返し、異常が解消しないと第3のステップへ移行する第4のステップを含めたものである。
【0011】
(3)請求項3記載の発明に係わるPCIバス不良箇所切り離し方法は、請求項1または請求項2のPCIバス不良個所切り離し方法において、第3のステップを実行しても異常が解消しない場合、あるいは、第3のステップを実行してから所望時間後に異常が解消しない場合、または、第1〜第3ステップのいずれか1つのステップが実行できない場合は、ホストCPUカードの異常と判定する第6のステップを含めたものである。
【0012】
(4)請求項4記載の発明に係わるPCIバス不良箇所切り離し方法を実行するプログラムは、請求項1〜3のいずれか1項に記載のPCIバス不良個所切り離し方法を実行させるためのプログラムとしたものである。
【0013】
【発明の実施の形態】
以下、この発明の実施の一形態を説明する。
実施の形態1.
図1はPCIバスを有するシステムの構成図で、10はPCIバスで、ホストCPUカード11とアドインカード12,13,14とが接続されている。ホストCPUカード11にはホストCPU11a及び図示しないがメモリ、インターフェース等の各種の計算機機能が内蔵されていてホストCPU機能を形成している。また、各種の必要なS/W11bも内蔵されていて、本発明のPCIバス不良箇所切り離し方法のソフトも内蔵されている。アドインカード12,13,14には、例えばLSIで構成されたPCIデバイス12a,13a,14aが設けられ、それらのPCIデバイス内には各種の機能を有するPCIファンクション12b,12c,13b,14b,14cを内蔵している。
【0014】
図2はこの発明の実施の形態1によるPCIバス不良箇所切り離し方法を実現するブロック図であり、図において、1はPCIバスに接続されるホストCPUカード上で動作し、PCIコンフィギュレーションサイクルを実行するPCIコンフィギュレーションサイクル実行部、2はこれからPCIコンフィギュレーションサイクルを実行するアクセスアドレス(PCIバス番号/デバイス番号/ファンクション番号の組み合わせ)を格納しておくアクセスアドレス格納領域、3は全ファンクションの論理的切り離し状況を管理するファンクション管理テーブル(図6参照)である。
【0015】
4はホストCPUカード上のCPU及びその上で動作するソフトウェアの正常動作を監視するWDT回路、5はホストCPUカード上のCPU及びその上で動作するソフトウェアが正常に動作している場合に、ソフトウェアにより定期的に書込みが行われるWDTクリアレジスタであり、書き込みが行われる事によりWDTのカウントアップ前にWDTカウンタ値のクリアを行う。なお、アドインカード上のCPUやその上で動作するソフトウェアの動作が異常の場合にはホストCPUカード上のCPU及びその上で動作するソフトウェアの異常として現れ、結果としてWDTクリアレジスタ5への書込みが停止する。従ってWDT回路4によってアドインカード側も監視している事となる。
【0016】
6はWDT回路4がカウントアップした場合に起動され、システムにウェイクアップリセット(Wake up reset)を発行するリセット生成回路、7はパワーONによるリセット解除か、ウェイクアップリセットによるリセット解除かを示すリセット要因レジスタであり、PCIコンフィギュレーションサイクル実行部1より読み込みが可能である。
なお、アクセスアドレス格納領域2とファンクション管理テーブル3のメモリ上に内容が格納され、ウェイクアップリセットをしてもその内容が保持される。
【0017】
次にWDT回路4の動作について説明する。
図3、図4はWDT回路4のカウンタ値の動きの一例を示す図である。
(1)まず図3(a)において、パワーONリセット解除(時刻:T1)にてWDT回路4がカウントし始める。
(2)ホストCPUとホストCPU上で動作しているソフトウェアが正常に動作しておりWDTカウントアップ以前にソフトウェアによりWDTクリアレジスタ5に書き込みを行うことによりWDTカウンタをクリアしている。この間にコンフィギュレーションが完了し、システムが立ち上がる。
【0018】
(3)図3(b)のように、あるPCIファンクションに異常があり、その為、そのPCIファンクションへのPCIコンフィギュレーション処理が時刻T2で停止したとすると、ソフトウェアによるWDTクリアレジスタ5への書込みが停止し、期間P1後にはWDTカウンタ値はカウントアップし、1回目のWDTカウントアップであるのでウェイクアップリセットの実施をリセット生成回路6に要求し、リセット生成回路6によりウェイクアップリセットが実施される(時刻:T3)。
(4)ウェイクアップリセット解除後に再度WDT回路4がカウントし始めるが、今回は異常PCIファンクションへのコンフィギュレーションをパスすることにより、WDTカウントアップ前にコンフィギュレーションが完了し、ソフトウェアによりWDTクリアレジスタ5をクリアするので、システムが正常に立ち上がる。
【0019】
(5)PCIファンクションに異常が発生し異常が復旧していない場合、図4(a)のように、ソフトウェアによるWDTクリアレジスタ5への書き込みが停止したままであるので、期間P2(=P1)後には再度WDTカウンタ値はカウントアップし、今回が連続した2回目のWDTカウントアップであるので、ホストCPUあるいは共通部であるPCIバスそのものの機能停止と判断し、例えばアラーム信号を送出するなどの異常判定処理を行う(時刻T5)。
(6)なお、図4(b)のように期間P2の間に一度でもソフトウェアによるWDTクリアレジスタ5への書き込みが行われた場合は、次のWDTカウントアップは1回目とみなし、ウェイクアップリセットとなる。(期間P2の間にWDTクリア処理が入ったために、連続2回目とならない。)
【0020】
次に全体の処理フローについて説明する。
図5はPCIコンフィギュレーションサイクル実行部1がPCIバス上の各ファンクションをコンフィギュレーションする一例を示すフローチャート図である。まず全PCIバス/デバイス/ファンクションが正常かつ、リセット要因がパワーONの場合を説明する。
【0021】
(1)PCIコンフィギュレーションサイクル実行部1はリセット要因レジスタ7の内容を読み出し(ステップST1−1)、
(2)今回のリセット要因を調べ(ステップST1−2)、
(3)リセット要因がWDTカウントアップによるウェイクアップリセット以外でなので、ファンクション管理テーブル3中の全ファンクションステータスを“0:正常”に初期化し(ステップST1−3)、
(4)全PCIバス/デバイス/ファンクションのコンフィギュレーション繰り返し処理に移り(ステップST1−4)、
(5)今回の繰り返し処理中にコンフィギュレーションする対象ファンクションステータスを調べ(ステップST1−5)、
【0022】
(6)異常なしなので今回コンフィギュレーションする対象のアクセスアドレスをアクセスアドレス格納領域2に格納し(ステップST1−6)、
(7)対象ファンクションのPCIコンフィギュレーション実行(ステップST1−7)、
(8)完了後にアクセスアドレス格納領域2をクリア(ステップST1−8)、全PCIバス/デバイス/ファンクション分をステップST1−4より繰り返し実行(ステップST1−9)により全PCIコンフィギュレーションを終了し、
(9)WDTカウントアップ前にWDTクリアレジスタ5に書き込みを行う(ステップST1−10)。(正常終了時でもWDTカウントアップしないようにカウンタの値を決定している。)
【0023】
次にPCIバス番号=0/デバイス番号=1/ファンクション番号=1で異常が発生している状態でパワーONリセットからの流れを説明する。
(1)ステップST1−1〜ST1−6までは前述と全く同じである。
(2)PCIバス番号=0/デバイス番号=1/ファンクション番号=1に対してPCIコンフィギュレーションを実施すると(ステップST1−7)、
【0024】
(3)PCIコンフィギュレーションサイクルが無限にリトライ処理を繰り返し、終了しないケースに陥る場合がある。(汎用のPCIチップセットとCPUを搭載し、CPU上で動作するS/Wによりこの汎用PCIチップを初期化するようなPCIターゲットカード(アドインカード)の場合、S/Wが正常に動作しないような異常が発生するとPCIチップの初期化が完了しない。この場合にはホストCPUカードからのPCIコンフィギュレーションサイクルに対して無限にリトライ処理を繰り返す結果となる場合がある。)結果としてWDTカウントアップ以前にWDTクリアレジスタ5への書き込みを行う事ができないため、ウェイクアップリセットが発生する。
【0025】
次に上記ウェイクアップリセット発生以降の流れを説明する。
(1)PCIコンフィギュレーションサイクル実行部1はリセット要因レジスタの内容を読み出し(ステップST1−1)、
(2)今回のリセット要因を調べ(ステップST1−2)、
(3)リセット要因がWDTカウントアップによるウェイクアップリセットなのでアクセスアドレス格納領域2の内容を読み出し(ステップST1−11)、
(4)格納内容を調べ(ステップST1−12)、
(5)異常を生じたアクセスアドレスが格納されているのでそのアクセスアドレス格納領域2をクリア(ステップST1−13)後、
【0026】
(6)ウェイクアップリセット発生以前にアクセスしていた情報であるPCIバス番号=0/デバイス番号=1/ファンクション番号=1を元に、ファンクション管理テーブル3中の該当するファンクションステータスを“1:異常”にセットし(ステップST1−14)、
(7)全PCIバス/デバイス/ファンクションのコンフィギュレーション繰り返し処理に移り(ステップST1−4)、
(8)今回の繰り返し処理中にコンフィギュレーションする対象ファンクションステータスを調べ(ステップST1−5)、
【0027】
(9)PCIバス番号=0/デバイス番号=1/ファンクション番号=1のファンクションステータスが”1:異常”にセットされているので、PCIバス番号=0/デバイス番号=1/ファンクション番号=1に対するPCIコンフィギュレーション処理を省略し、残りの全PCIバス/デバイス/ファンクション分をステップST1−4より繰り返し実行(ステップST1−9)により全PCIコンフィギュレーションを終了し、
(10)WDTカウントアップ前にWDTクリアレジスタ5に書き込みを行う(ステップST1−10)。
【0028】
(11)残りの全PCIバス/デバイス/ファンクションのPCIコンフィギュレーション中に他のファンクションで同様の異常となった場合には、PCIコンフィギュレーション処理で停止し、連続2回目のWDTカウントアップ後にホストCPU機能が停止していると判定する。
つまり、最初に異常を検出した1つのPCIファンクションの切り離し処理のみを行い、複数のPCIファンクションが異常の場合には、ホストCPUあるいは共通部であるPCIバスそのものの機能停止と判断し、アラーム等の送出処理を行う。
【0029】
図6にPCIバス番号=0/デバイス番号=1/ファンクション番号=1で異常が発生してPCIコンフィギュレーション処理を省略した後のファンクション管理テーブル3の例を示す。
【0030】
このように、WDTカウントアップによるウェイクアップリセットを設け、異常ファンクションに対するPCIコンフィギュレーションサイクル処理の停止からのリセット復帰をできる様にし、さらに、アクセスアドレス格納領域2とファンクション管理テーブル3により、異常となったPCIコンフィギュレーションサイクルのアクセス先(PCIバス番号/デバイス番号/ファンクション番号)を格納・保持する手段を設け、全PCIコンフィギュレーション完了後に始めてWDTクリア処理を行う為、1つの異常PCIファンクションの検出と、その1つのPCIファンクションの論理的に切り離しが可能となり、正常部分でのシステムの連続稼動性の向上が可能となる。
【0031】
また、PCIのトランザクションを解析するという特殊なH/W回路の追加も必要ない。
【0032】
また、PCIバス上の電気的負荷とならないので、PCIバスの拡張スロットを1つ占有する事も無いため、PCIバス拡張スロットを有効に使用できる。
【0033】
実施の形態2.
実施の形態1では図4(a)において、T3時点で1回目のWDTカウントアップによりウェイクアップリセットをした後、異常のPCIファンクションを除いて、残りのPCIファンクションに対してPCIコンフィギュレーションを実行するようにしたが、たまたまノイズの影響などで過渡的に異常が発生し、正常のPCIファンクションが異常とみなされることがある。
この発明の実施の形態2では、異常のあるアドレスのPCIファンクションを除かず全アドレスのPCIファンクションに対してPCIコンフィギュレーションを再度実行する。
つまり、図4(a)のP1の期間に相当する動作を少なくとも一回は繰り返すようにし、その後にP2の期間の処理に移行する。
【0034】
実施の形態3.
次に、この発明の実施の形態3について説明する。実施の形態3ではブロック図は実施の形態1での図2と同様であり、実施の形態1と異なるのはPCIコンフィギュレーションサイクル実行部1の処理を示す図7のフローチャートと、図8の使用するファンクション管理テーブルの内容である。
【0035】
次に動作について説明する。
図7はこの発明の実施の形態3によるPCIコンフィギュレーションサイクル実行部1がファンクション管理テーブル3を使用して処理を行う一例を示すフローチャート図である。図7において、実施の形態1と同等の処理ステップには図5と同一のステップ番号を付けて重複説明を省略する。また、図7において、図5と異なる部分についてのみ新たなステップ番号ST2−15を付けて説明する。
【0036】
全PCIバス/デバイス/ファンクションが正常の場合には実施の形態1と同様の処理になる為に説明を省略する。
また、PCIバス番号=0/デバイス番号=1/ファンクション番号=1で異常が発生している状態でのパワーONリセットからウェイクアップリセット1回目が発生するまでの流れも実施の形態1と同様の処理になるために説明を省略する。
【0037】
次に上記ウェイクアップリセット1回目発生以降の流れを説明する。
(1)ステップST1−1〜ST1−14までは実施の形態1と同様であり、この時点ではPCIバス番号=0/デバイス番号=1/ファンクション番号=1に該当するファンクション管理テーブル3中のファンクションステータスは“1:異常”にセットされている。
(2)この後、実施の形態3ではWDTクリアレジスタ5への書き込み処理を行い(ステップST2−15)、
(3)全PCIバス/デバイス/ファンクションのコンフィギュレーション繰り返し処理に移り(ステップST1−4)、
(4)今回の繰り返し処理中にコンフィギュレーションする対象ファンクションステータスを調べ(ステップST1−5)、
(5)PCIバス番号=0/デバイス番号=1/ファンクション番号=1のファンクションステータスが”1:異常”にセットされているので、PCIバス番号=0/デバイス番号=1/ファンクション番号=1に対するPCIコンフィギュレーション処理を省略し、残りの全PCIバス/デバイス/ファンクション分をステップST1−4より繰り返し実行する(ステップST1−9)。
【0038】
(6)ここで、残りの全PCIバス/デバイス/ファンクションのPCIコンフィギュレーション中に他のPCIファンクションで同様の異常となった場合として、PCIバス番号=0/デバイス番号=1/ファンクション番号=3の異常を想定する(図8参照)。このPCIバス番号=0/デバイス番号=1/ファンクション番号=3に対するPCIコンフィギュレーション処理が無限にリトライを繰り返し、終了しない。結果として再度WDTカウンタがカウントアップする。
(7)ここで実施の形態1と異なる点はステップST2−15にて一度WDTクリアレジスタ5への書き込みを実施しているため、今回のカウントアップでもウェイクアップリセットが発生する点である。
【0039】
(8)ウェイクアップリセット後は再度ステップST1−1より開始し、
(9)最終的にはPCIバス番号=0/デバイス番号=1/ファンクション番号=1とPCIバス番号=0/デバイス番号=1/ファンクション番号=3の両ファンクションの異常を検出し、両ファンクションに対するPCIコンフィギュレーション処理を省略することにより、両ファンクションをPCIバスより論理的に切り離す。
【0040】
図8にPCIバス番号=0/デバイス番号=1/ファンクション番号=1と、PCIバス番号=0/デバイス番号=1/ファンクション番号=3で異常が発生してPCIコンフィギュレーション処理を省略した後のファンクション管理テーブル3の例を示す。
【0041】
このように、WDTカウントアップによるウェイクアップリセットを設け、異常ファンクションに対するPCIコンフィギュレーションサイクル処理の停止からのリセット復帰をできる様にし、さらに、アクセスアドレス格納領域2とファンクション管理テーブル3により、異常となったPCIコンフィギュレーションサイクルのアクセス先(PCIバス番号/デバイス番号/ファンクション番号)を格納・保持する手段を設け、異常ファンクションを検出する度にWDTクリア処理を行う為、複数または全ての異常PCIファンクションの検出と、それら複数または全ての異常PCIファンクションを論理的に切り離し可能となり、正常部分でのシステムの連続稼動性の向上が可能となる。
【0042】
以上のように複数の異常のPCIファンクションがあり、これらの異常のある全てのPCIファンクションが切り離されるまで、コンフィギュレーションを繰り返してコンフィギュレーションを完了することができる。
しかし、ホストCPUカードの故障があると、コンフィギュレーション動作を繰り返すので、これを防止するため所定回数コンフィギュレーションするとホストCPUあるいは共通部であるPCIバスそのものの機能停止と判定し、アラーム等を送出してコンフィギュレーションを中止するようにしてもよい。
【0043】
実施の形態4.
システム構成としてPCIバス上に実装されるH/Wとして1カード=1デバイス=1ファンクションあるいは、1カード=1デバイス=複数ファンクションの構成が多く、また、異常となる単位もカード単位、つまり、デバイス単位となる場合が多い。この実施の形態4では、PCIデバイス単位での論理的切り離しを行うようにし、システム立ち上がり時間を更に短縮するものである。
【0044】
図9はこの発明の実施の形態4によるPCIバス不良箇所切り離し方法を実現するブロック図であり、図において、実施の形態3と同等のブロックには図2と同一の番号を付けて重複説明を省略する。また、図9において、図2と異なる部分についてのみ30番台の新たなブロック番号を付けて説明する。
実施の形態4ではPCIバスからの論理的切り離しの単位をPCIデバイスとするので、実施の形態3でのファンクション管理テーブル3は、デバイス管理テーブル33となる。その他のブロックは実施の形態3と同様である。
【0045】
次に動作について説明する。
図10はこの発明の実施の形態4によるPCIコンフィギュレーションサイクル実行部1がデバイス管理テーブル33を使用して処理を行う一例を示すフローチャート図である。図において、実施の形態3と同等の処理ステップには図7と同一のステップ番号を付けて重複説明を省略する。また、図10において、図7と異なる部分についてのみ新たなステップ番号ST3−3,ST3−5,ST3−14を付けて説明する。
【0046】
全PCIバス/デバイス/ファンクションが正常の場合には実施の形態3と同様の処理になる為に説明を省略する。
PCIバス番号=0/デバイス番号=1/ファンクション番号=1で異常が発生している状態でパワーONリセットからの流れを説明する。
(1)ステップST1−1〜ST1−2までは実施の形態3と全く同じである。
(2)リセット要因がWDTカウントアップによるウェイクアップリセット以外なのでデバイス管理テーブル33中の全デバイスステータスを“0:正常”に初期化し(ステップST3−3)、
【0047】
(3)ステップST1−4〜ステップST1−6は実施の形態3と同様の処理を行い、PCIバス番号=0/デバイス番号=1/ファンクション番号=1に対してPCIコンフィギュレーションを実施すると(ステップST1−7)、PCIコンフィギュレーションサイクルが無限にリトライ処理を繰り返し、終了しないケースに陥る場合がある。結果としてWDTカウントアップ以前にWDTクリアレジスタ5への書き込みを行う事ができないため、ウェイクアップリセットが発生する。
【0048】
次に上記ウェイクアップリセット発生以降の流れを説明する。
(1)ステップST1−1〜ST1−13までは実施の形態3と同様に、ウェイクアップリセット発生以前にアクセスしていた情報であるPCIバス番号=0/デバイス番号=1/ファンクション番号=1を元に、デバイス管理テーブル33中の該当するデバイスステータスを“1:異常”にセットし(ステップST3−14)、
(2)全PCIバス/デバイス/ファンクションのコンフィギュレーション繰り返し処理に移り(ステップST1−4)、
(3)今回の繰り返し処理中にコンフィギュレーションする対象デバイスステータスを調べ(ステップST3−5)、
【0049】
(4)PCIバス番号=0/デバイス番号=1のデバイスステータスが”1:異常”にセットされているので、PCIバス番号=0/デバイス番号=1の全ファンクションに対するPCIコンフィギュレーション処理を省略し、残りの全PCIバス/デバイス/ファンクション分をステップST1−4より繰り返し実行(ステップST1−9)により全PCIコンフィギュレーションを終了し、
(5)WDTカウントアップ前にWDTクリアレジスタ5に書き込みを行う(ステップST1−10)。
【0050】
(6)残りの全PCIバス/デバイス/ファンクションのPCIコンフィギュレーション中に他のデバイスで同様の異常となった場合には、デバイス管理テーブル33中の該当するデバイスステータスを“1:異常”にセットし、再度ステップST1−1より再開する。
この場合でもデバイス管理テーブル33はクリアされずに保持されている為、前回、既に異常のためにPCIコンフィギュレーション処理を省略したデバイスは、今回も再度省略される。
【0051】
図11にPCIバス番号=0/デバイス番号=1/ファンクション番号=1と、PCIバス番号=0/デバイス番号=3/ファンクション番号=1で異常が発生してPCIコンフィギュレーション処理を省略した後のデバイス管理テーブル33の例を示す。なお、コンフィギュレーションする場合や異常を検出するのはファンクション単位であるが、切り離しはデバイス単位であるので、図11のデバイス管理テーブル33にはファンクション番号が表示されない。
【0052】
このように、WDTカウントアップによるウェイクアップリセットを設け、異常デバイスに対するPCIコンフィギュレーションサイクル処理の停止からのリセット復帰をできる様にし、さらに、アクセスアドレス格納領域2とデバイス管理テーブル33により、異常となったPCIコンフィギュレーションサイクルのアクセス先(PCIバス番号/デバイス番号)を格納・保持する手段を設け、異常デバイスを検出する度にWDTクリア処理を行う為、複数または全ての異常PCIデバイスの検出と、それら複数または全ての異常PCIデバイスを論理的に切り離し可能となり、正常部分でのシステムの連続稼動性の向上が可能となる。
【0053】
また、PCIデバイス単位での論理的切り離しによって、PCIファンクション単位での論理的切り離しよりもシステム立ち上がり時間が短縮される。
【0054】
上記各実施の形態ではPCIバスについて説明したが、最近よく使用されているCompactPCIバスについてもこの発明が適用できる。
【0055】
【発明の効果】
(1)以上のように、請求項1記載の発明によれば、1つの異常PCIファンクションの検出と、その1つのPCIファンクションの論理的に切り離しが可能となり、正常部分でのシステムの連続稼動性を向上させる効果がある。
【0056】
(2)請求項2記載の発明によれば、異常があっても全てのPCIファンクションに対しコンフィギュレーションを少なくとも1回繰り返すことにより、ノイズの影響などで過渡的に異常が発生しても、正常のPCIファンクションが異常とみなされることを防止する効果がある。
【0057】
(3)また、請求項1及び2記載の発明によれば、異常があれば順次残りのPCIファンクションのコンフィギュレーションを行うことにより、複数のまたは全ての異常PCIファンクションの検出と、それら複数のまたは全ての異常PCIファンクションの論理的に切り離しが可能となり、正常なPCIファンクションだけで立ち上げることができ、正常部分でのシステムの連続稼動性を向上させる効果がある。
【0058】
(4)請求項3記載の発明によれば、PCIデバイス単位で異常を検出し、そのPCIデバイスを切り離すようにしたので、正常部分でのシステムの連続稼動性を向上させる効果がある。
【0059】
(5)請求項4記載の発明によれば、正常部分でのシステムの連続稼動性を向上するプログラムとした効果がある。
【0060】
【図面の簡単な説明】
【図1】 本発明の実施の形態1によるPCIバスシステムの構成図である。
【図2】 本発明の実施の形態1によるPCI不良箇所切り離し方法の一例を示すブロック図である。
【図3】 本発明の実施の形態1によるPCI不良箇所切り離し方法で使用するWDT回路の動作例である。
【図4】 本発明の実施の形態1によるPCI不良箇所切り離し方法で使用するWDT回路の動作例である。
【図5】 本発明の実施の形態1によるPCI不良箇所切り離し方法の一例を示すフローチャート図である。
【図6】 本発明の実施の形態1によるPCI不良箇所切り離し方法で使用するファンクション管理テーブルの一例である。
【図7】 本発明の実施の形態3によるPCI不良箇所切り離し方法の一例を示すフローチャート図である。
【図8】 本発明の実施の形態3によるPCI不良箇所切り離し方法で使用するファンクション管理テーブルの一例である。
【図9】 本発明の実施の形態4によるPCI不良箇所切り離し方法の一例を示すブロック図である。
【図10】 本発明の実施の形態4によるPCI不良箇所切り離し方法の一例を示すフローチャート図である。
【図11】 本発明の実施の形態4によるPCI不良箇所切り離し方法で使用するデバイス管理テーブルの一例である。
【図12】 従来例のPCIバス処理装置の構成例である。
【符号の説明】
1 PCIコンフィギュレーションサイクル実行部
2 アクセスアドレス格納領域 3 ファンクション管理テーブル
4 WDT回路 5 WDTクリアレジスタ
6 リセット生成回路 7 リセット要因レジスタ
12,13,14 アドインカード
12a,13a,14a PCIデバイス
12b,12c,13b,14b,14c PCIファンクション
Claims (4)
- ホストCPUカードと、PCIファンクションを内蔵したPCIデバイスとがPCIバスを介して接続されたシステムに対し、上記PCIファンクションまたはPCIデバイスをコンフィギュレーションした場合に異常があると、異常対象のPCIファンクションまたはPCIデバイスを上記システムから切り離すPCIバス不良個所切り離し方法において、
上記システム立ち上げ時に上記各PCIファンクションまたは各PCIデバイス毎に順次コンフィギュレーションを実行する第1のステップと、
上記コンフィギュレーション中に異常があると、上記ホストCPUカード及び全てのPCIファンクションまたはPCIデバイスをリセットする第2のステップと、
上記リセット後に異常があったPCIファンクションまたはPCIデバイスを切り離して、残りの各PCIファンクションまたは各PCIデバイスに対し順次コンフィギュレーションを実行する第3のステップと、
第3のステップでコンフィギュレーションを実行しても異常が解消しない場合は、第2のステップへ戻って上記ホストCPUカード及び全てのPCIファンクションまたはPCIデバイスに対してリセットを実行するよう、第2と第3のステップを所定回数または異常が解消するまで繰り返し行う第5のステップとを上記ホストCPUカードにて行うことにより、複数の異常PCIファンクションまたはPCIデバイスをシステムから切り離し可能としたことを特徴とするPCIバス不良個所切り離し方法。 - 請求項1のPCIバス不良個所切り離し方法において、第2のステップでリセットした後に、第1のステップに戻り再度、全てのPCIファンクションまたはPCIデバイスに対してコンフィギュレーションするよう第1と第2のステップを少なくとも1回繰り返し、異常が解消しないと第3のステップへ移行する第4のステップを含めたことを特徴とするPCIバス不良個所切り離し方法。
- 請求項1または請求項2のPCIバス不良個所切り離し方法において、第3のステップを実行しても異常が解消しない場合、あるいは、第3のステップを実行してから所望時間後に異常が解消しない場合、または、第1〜第3ステップのいずれか1つのステップが実行できない場合は、ホストCPUカードの異常と判定する第6のステップを含めたことを特徴とするPCIバス不良個所切り離し方法。
- 請求項1〜3のいずれか1項に記載のPCIバス不良個所切り離し方法を実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001089687A JP3644399B2 (ja) | 2001-03-27 | 2001-03-27 | Pciバス不良個所切り離し方法およびそのプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001089687A JP3644399B2 (ja) | 2001-03-27 | 2001-03-27 | Pciバス不良個所切り離し方法およびそのプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002288049A JP2002288049A (ja) | 2002-10-04 |
JP3644399B2 true JP3644399B2 (ja) | 2005-04-27 |
Family
ID=18944583
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001089687A Expired - Fee Related JP3644399B2 (ja) | 2001-03-27 | 2001-03-27 | Pciバス不良個所切り離し方法およびそのプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3644399B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4218538B2 (ja) | 2004-01-28 | 2009-02-04 | 日本電気株式会社 | コンピュータシステム、バスコントローラ及びそれらに用いるバス障害処理方法 |
JP4915113B2 (ja) * | 2006-03-15 | 2012-04-11 | 日本電気株式会社 | バスシステム、リセットイニシャライズ回路、及びバスシステムにおける障害復旧方法 |
US7620854B2 (en) * | 2007-01-30 | 2009-11-17 | Hewlett-Packard Development Company, L.P. | Method and system for handling input/output (I/O) errors |
JP4977494B2 (ja) * | 2007-02-28 | 2012-07-18 | エヌイーシーコンピュータテクノ株式会社 | 活線挿抜システム |
JP5293412B2 (ja) * | 2009-06-01 | 2013-09-18 | 日本電気株式会社 | コンピュータシステム、及びコンピュータシステムの障害処理方法 |
JP5598148B2 (ja) * | 2010-08-05 | 2014-10-01 | 富士通株式会社 | スイッチング装置、情報処理装置、及びスイッチング装置の制御方法 |
-
2001
- 2001-03-27 JP JP2001089687A patent/JP3644399B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2002288049A (ja) | 2002-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7313717B2 (en) | Error management | |
US6574748B1 (en) | Fast relief swapping of processors in a data processing system | |
US20040221198A1 (en) | Automatic error diagnosis | |
CN111414268B (zh) | 故障处理方法、装置及服务器 | |
US6950978B2 (en) | Method and apparatus for parity error recovery | |
JP7351933B2 (ja) | エラーリカバリ方法及び装置 | |
JP2002132697A (ja) | リソース回復により最適なシステム可用性を保つ方法 | |
US20040216003A1 (en) | Mechanism for FRU fault isolation in distributed nodal environment | |
JP3644399B2 (ja) | Pciバス不良個所切り離し方法およびそのプログラム | |
JP4644720B2 (ja) | 制御方法、情報処理装置及びストレージシステム | |
CN116048400A (zh) | 一种硬件恢复方法、装置、设备及可读存储介质 | |
CN114003461A (zh) | 服务器故障预测方法、系统、终端及存储介质 | |
JP3365282B2 (ja) | クラスタ接続マルチcpuシステムのcpuデグレード方式 | |
JP2003022222A (ja) | 情報処理装置及びその保守方法 | |
JP3243687B2 (ja) | 活線挿抜システム | |
JPH11120154A (ja) | コンピュータシステムにおけるアクセス制御装置および方法 | |
JP3022687B2 (ja) | メモリ障害処理方式 | |
JPH06214831A (ja) | 中央処理装置の異常検出装置 | |
JP2001175545A (ja) | サーバシステムおよび障害診断方法ならびに記録媒体 | |
JP3340284B2 (ja) | 冗長システム | |
JP2723008B2 (ja) | 端末装置障害回復システム | |
JP2003345676A (ja) | 二重化メモリシステム | |
CN117742932A (zh) | 数据处理系统 | |
JP2010134696A (ja) | Raidコントローラ装置、処理方法、raidコントローラ回路及びプログラム | |
JP5381151B2 (ja) | 情報処理装置、バス制御回路、バス制御方法及びバス制御プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20040126 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040701 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040706 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040806 |
|
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: 20050118 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050124 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |