説明

PCIカード情報採取装置

【課題】システムの運用中にPCIカードの交換がされた場合でも、交換されたPCIカードのVID/DID情報を確実に採取する。
【解決手段】PCIカードが交換された後に、そのPCIカードに対してOS6から命令が出された場合、PCIカード情報採取装置7の発行制御部11において、その命令を停止し、替わりにVID/DID情報読み出し命令をそのPCIカードに対して出力する。受信制御部12では、発行制御部11により発行されたVID/DID情報読み出し命令に対する受信データをレジスタに保持しておく。診断プロセッサ3はVID/DID情報読み出し命令を発行することなく交換されたPCIカードのVID/DID情報を採取することが可能となり、OS6からのPCIカードリセット処理と診断プロセッサからのVID/DID情報読み出し命令の競合を発生させることなく、正しいVID/DID情報を採取できる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、スロットに搭載されているPCI(Peripheral Component Interconnect)カードの種別を表すベンダ識別子(以下VID(Vender ID)と略す。)情報/デバイス識別子(以下DID(Device ID)と略す。)情報を採取するためのPCIカード情報採取装置に関する。
【背景技術】
【0002】
コンピュータシステムのI/O機能を拡張するための周辺装置としてPCIカードが広く用いられている(例えば、特許文献1参照。)。このPCIカードは、コンピュータシステム内に設けられたPCIカードスロット(以下スロットと略す。)に搭載して利用される。
【0003】
しかし、コンピュータ端末、PCIカードは様々なメーカにより供給されているため搭載したPCIカードが正しく動作せずに障害が発生する場合がある。そのため、PCIカードが内部にメモリを備えている場合には、そのメモリ内残っている障害情報を読み出すようにすれば障害が発生した原因を特定することができる。このように、PCIカードで障害が発生しした場合に、PCIカードに残っている障害情報を採取することをエラーリカバリ(PCIカードの障害処理)を行うという。一般的に、このエラーリカバリは、OS(Operating System)を搭載したプロセッサとは異なる診断プロセッサにより行われる。この診断プロセッサは、エラリカバリーの設定および障害情報の採取を行っている。
【0004】
しかし、PCIカードの中には、カード内にメモリを持っていてエラー情報を残しておくエラーリカバリが可能なPCIカードと、メモリを備えていないのでエラーリカバリが不可能なPCIカードが存在する。このように、全てのPCIカードがエラーリカバリー可能なわけではなく、PCIカードにはエラーリカバリできるものと出来ないものがあるため、1つのコンピュータシステムにおいてエラーリカバリー可能なPCIカードとエラーリカバリーが不可能なPCIカードを併用して、エラーリカバリーが可能なPCIカードのみに障害処理を行うようにするためには、PCIカードの種別を表すVID/DID情報を採取して、障害処理方法の設定を行うための診断プロセッサに対して通知することが必要となる。
【0005】
何故ならば、エラーリカバリが不可能なPCIカードから採取した障害情報は、本来意味をなさないものであるため、この障害情報を解析すると誤った判定が行われてしまうからである。そのため、エラーリカバリが不可能なPCIカードに対しては、エラーリカバリが行われないようにしなければならない。コンピュータシステム全体でエラーリカバリを行うか否かを設定してしまえばこのような問題は発生しない。しかし、装置全体で障害処理を行うように設定した場合、エラーリカバリができないPCIカードは搭載できなくなり、装置全体で障害処理を行わないように設定した場合、せっかくエラーリカバリが可能なPCIカードが搭載されているにもかかわらず障害情報が採取されないため、障害原因の解析が行われないことになってしまう。
【0006】
1つのコンピュータシステムにおいてエラーリカバリー可能なPCIカードとエラーリカバリーが不可能なPCIカードを併用できるようにするためには、搭載されているPCIカードのVID/DID情報を採取して、各PCIカードがそれぞれエラーリカバリが可能なのか不可能なのかを診断プロセッサに対して通知しておくようにすればよい。しかし、コンピュータシステムでは、運用中にPCIカードを交換することが可能であるため、システム運用中にPCIカードが交換される場合がある。そのため、PCIカードの交換が行われる毎に交換されたPCIカード情報(PCIコンフィグ空間のVID/DID情報)の採取が必要となる。
【0007】
しかし、システム運用中のカード交換の際に、交換されたPCIカードのVID/DID情報の採取を行うとした場合、次のような課題があった。
【0008】
システム運用中にPCIカードが交換された場合、交換処理自体はOS主導で行われる。診断プロセッサはカード交換を検知する事、VID/DID情報の読み出し命令を発行する事は可能であるが、OSと診断プロセッサの動作は同期していないため、診断プロセッサからVID/DID情報読み出し命令を発行した時にOSからのPCIカードリセット処理と競合する可能性がある。そして、診断プロセッサから発行されたVID/DID情報読み出し命令とOSからのPCIカードリセット処理が競合した場合、正しいVID/DID情報を採取することができない。
【0009】
このようにシステム運用中にPCIカードが交換された際に、交換されたPCIカードのVID/DID情報の読み出し処理が困難であったため、従来技術では、VID/DID情報の読み出しは行わず、システム全体としてエラーリカバリを行うかどうかのいずれかを選択して設定するしかなかった。しかし、システム全体としてエラーリカバリを行うという設定を選択した場合、エラーリカバリが不可能なPCIカードを搭載することができないため、使用可能カードが制限されてしまうことになっていた。
【特許文献1】特開2003−296263号公報
【発明の開示】
【発明が解決しようとする課題】
【0010】
上述した従来技術では、システムの運用中にPCIカードが交換された際、障害処理の設定を行う診断プロセッサが交換されたPCIカードのVID/DID情報を採取しようとした場合、OSからのPCIカードリセット処理と診断プロセッサからのVID/DID情報読み出し命令が競合する可能性があるため、正しいVID/DID情報を採取することができないという問題点があった。
【0011】
本発明の目的は、システムの運用中にPCIカードの交換がされた場合でも、交換されたPCIカードのVID/DID情報を確実に採取することができるPCIカード情報採取装置を提供することである。
【課題を解決するための手段】
【0012】
上記目的を達成するために、本発明のPCIカード情報採取装置は、スロットに搭載されているPCIカードの種別を表すVID/DID情報を採取するためのPCIカード情報採取装置であって、
OSからPCIカードに対して発行された命令を受信すると、受信した該命令がどのスロットに搭載されたPCIカードに対して発行されたものであるかを示すあて先情報を判定するルーティング制御部と、
前記ルーティング制御部により判定されたあて先情報と、各スロットに搭載されたPCIカードのVID/DID情報が取得済みであるか否かを示す読み出し完了フラグ情報とに基づいて、前記ルーティング制御部がOSから受信した命令のあて先となっているスロットに搭載されたPCIカードのVID/DID情報が採取済みであるか否かを判定し、まだVID/DID情報が採取されていないと判定された場合、前記OSからの命令を停止して当該PCIカードに対してVID/DID情報読み出し命令を発行する発行制御部と、
前記PCIカードからのデータを受信すると、受信した該データが、前記発行制御部により発行されたVID/DID情報読み出し命令に対するものであるのか前記OSから発行された命令に対するものであるのかを判定し、前記発行制御部により発行された命令に対するものである場合、受信した前記データをVID/DID情報としてレジスタに格納し、診断プロセッサにVID/DID情報を採取した旨を通知するとともに、当該PCIカードの前記読み出し完了フラグを採取済みとする受信制御部とを備えている。
【0013】
また、前記受信制御部は、前記発行制御部により発行された命令に対するVID/DID情報を受信した場合、前記発行制御部へVID/DID情報を受信した旨の受信報告を行い、
前記発行制御部は、VID/DID情報読み出し命令を発行してから前記受信制御部からの受信報告を確認するまでの間は、当該スロットのPCIカードに対するVID/DID情報読み出し命令を出力しないようにしてもよい。
【0014】
さらに、前記受信制御部は、前記スロットの電源ステータスがオフになった場合、電源ステータスがオフになったスロットに対応する読み出し完了フラグをリセットとして未採取とするようにしてもよい。
【0015】
本発明によれば、PCIカードが交換された後に、そのPCIカードに対してOSから命令が出された場合、発行制御部において、その命令を停止し、替わりにVID/DID情報読み出し命令をそのPCIカードに対して出力し、受信制御部では、発行制御部により発行されたVID/DID情報読み出し命令に対する受信データをレジスタに保持しておくようにする。従って、診断プロセッサはVID/DID情報読み出し命令を発行することなく交換されたPCIカードのVID/DID情報を採取することが可能となり、OSからのPCIカードリセット処理と診断プロセッサからのVID/DID情報読み出し命令の競合を発生させることなく、正しいVID/DID情報を採取することが可能となる。
【0016】
そして、システムの運用中にPCIカードの交換がされた場合でも、交換されたPCIカードのVID/DID情報を確実に採取することができるようになることにより、診断プロセッサは、PCIカード個別に障害処理方法を設定することが可能となる。
【発明の効果】
【0017】
以上説明したように、本発明によれば、OSからシステム配下にあるPCIカードへの最初の命令を停止し、そのPCIカードに対するVID/DID情報読み出し命令を送出する事で、システム配下のVID/DID情報を確実に採取することができるため、システム内でPCIカード個別に障害処理方法を設定することができ、システム単位で使用できるカードの制限がなくなるという効果を得ることができる。
【発明を実施するための最良の形態】
【0018】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【0019】
図1は本発明の一実施形態のPCIカード情報採取装置7を含むコンピュータシステムの構成を示すブロック図である。
【0020】
本実施形態におけるコンピュータシステムは、図1に示されるように、PCIカード情報採取装置7と、OS(Operating System)6と、診断プロセッサ3と、スイッチ4と、PCIカードを搭載するための2つのスロット51、52とを備えている。ここで、スロット51、52に搭載されたPCIカードをそれぞれカード1、2とする。
【0021】
PCIカードが交換された後に、そのPCIカードに対してOS6から最初の命令が発行された場合には、そのPCIカードに対しては既にリセット、ルーティング、その他のOS6主導で行われる初期設定が完了していると判断することができる。そのため、本実施形態のPCIカード情報採取装置7では、OS6からVID/DID情報がまだ採取されていないPCIカードに対して命令が出された場合、その命令をトリガとしてVID/DID情報読み出し命令を発行するようにする。このようにOS6からあるPCIカードに対して最初に命令が出された場合、この命令を一旦停止して、VID/DID情報読み出し命令を発行するようにすれば、PCIカードリセット処理とVID/DID情報読み出し命令とが競合することはない。そのため、コンピュータシステムの運用中にカード交換が行われた場合でもどのカードのVID/DID情報を確実に採取することが可能となり、カード個別に障害処理方法を設定することが可能となる。
【0022】
図1を参照すると、本発明の一実施形態としてのPCIカード情報採取装置7は、OS6からの命令がどのカード行きのものかを判定するルーティング制御部10と、OS6からの命令を停止しVID/DID情報読み出し命令を発行する発行制御部11と、読み出されたVID/DID情報を保持して診断プロセッサ3へ報告する受信制御部12とから構成されている。
【0023】
ルーティング制御部10は、OS6からPCIカード1、2に対して発行された命令を受信すると、受信したその命令がスロット51、52のどちらのスロットに搭載されたPCIカードに対して発行されたものであるかを示すあて先情報を判定する。そして、ルーティング制御部10は、判定したあて先情報とOS6から受信した命令を発行制御部11に通知する。
【0024】
このルーティング制御部10では、あて先判定に必要なテーブルを所持している。このテーブル情報はOS6により設定するようにしてもよいし、OS6が配下のデバイスに対して設定する値を必要に応じて抜き取って用いるようにしてもよい。このような制御は当業者にとってよく知られており、また本発明とは直接関係しないので、その詳細な構成は省略する。
【0025】
発行制御部11は、ルーティング制御部10により判定されたあて先情報と、各スロット51、52に搭載されたPCIカード1、2のVID/DID情報が取得済みであるか否かを示す読み出し完了フラグ情報とに基づいて、ルーティング制御部10がOS6から受信した命令のあて先となっているスロットに搭載されたPCIカードのVID/DID情報が採取済みであるか否かを判定し、まだVID/DID情報が採取されていないと判定された場合、OS6からの命令を停止して当該PCIカードに対してVID/DID情報読み出し命令を発行する。
【0026】
また、発行制御部は、VID/DID情報読み出し命令を発行してから受信制御部12からの受信報告を確認するまでの間は、当該スロットのPCIカードに対するVID/DID情報読み出し命令を出力しないようにする。
【0027】
受信制御部12は、PCIカード1、2からのデータを受信すると、受信したそのデータが、発行制御部11により発行されたVID/DID情報読み出し命令に対するものであるのかOS6から発行された命令に対するものであるのかを判定し、発行制御部11により発行された命令に対するものである場合、受信したデータをVID/DID情報としてレジスタに格納し、診断プロセッサ3にVID/DID情報を採取した旨を通知するとともに、当該PCIカードの読み出し完了フラグを採取済みとする。
【0028】
また、受信制御部12は、発行制御部11により発行された命令に対するVID/DID情報を受信した場合、発行制御部11へVID/DID情報を受信した旨の受信報告を行う。
【0029】
さらに、運用中にカード交換した時に、交換したカードに対するVID/DID情報読み出し処理が行えるように、受信制御部12は、スロット51、52の電源ステータスがオフになった場合、電源ステータスがオフとなったスロットに対応する読み出し完了フラグをリセットして未採取とする。
【0030】
次に、図1中の発行制御部11の詳細な構成について説明する。図2は発行制御部11の構成例を示すブロック図である。
【0031】
発行制御部11は、図2に示されるように、OS発行命令保持用レジスタ20と、送出命令判定回路21と、セレクタ22と、読み出し命令発行中フラグ生成回路23とから構成される。
【0032】
OS発行命令保持用レジスタ20は、OS6からの命令を停止してVID/DID情報読み出し命令を発行する際に、OS6から発行された命令を格納しておくためのものである。
【0033】
送出命令判定回路21は、VID/DID情報読み出し命令を発行するか否かの判定を行ためのものである。例として、図1のカード1に対するVID/DID読み出し命令の発行条件をみると、判定に使用している情報はルーティング制御部10から通知されるOS発行命令のあて先情報と、受信制御部12から通知される読み出し完了報告、読み出し命令発行中フラグ生成回路23により生成される読み出し命令発行中フラグの3つであり、OS6から発行された命令のあて先が「カード1行き」、かつカード1の読み出し完了報告が「オフ」、かつカード1の読み出し命令発行中フラグが「オフ」の時にカード1への読み出し命令の発行指示が行われる。
【0034】
セレクタ22は、送出命令判定回路21からの発行命令指示情報を元に送出命令(OS6からの命令、カード1行き・カード2行きのVID/DID読み出し発行命令)を選択するためのものである。
【0035】
読み出し命令発行中フラグ生成回路23は、VID/DID読み出し命令が発行中であることを示す読み出し命令発行中フラグを生成するための回路である。読み出し命令発行中フラグは、読み出し命令が複数発行されるのを抑止するためのフラグである。読み出し命令発行中フラグ生成回路23は、VID/DID読み出し命令を発行した時に読み出し命令発行中フラグを「オン」とし、受信制御部12からの受信報告で「オフ」とする。
【0036】
次に、図1中の受信制御部12の詳細な構成について説明する。図3は受信制御部12の構成例を示すブロック図である。
【0037】
受信制御部12は、図3に示されるように、データ行き先判定回路31と、VID/DID情報格納レジスタ32と、読み出し完了フラグ生成回路33と、完了報告制御回路34と、受信カウンタ35とから構成される。
【0038】
カード情報レジスタ32、読み出し完了フラグ生成回路33、完了報告制御回路34、受信カウンタ35はそれぞれ、カード1、2用のもが各々備えられている。
【0039】
データ行き先判定回路31は、カード1、2から発行された命令およびデータを受信し、その受信データが、OS6により発行された命令に対するものであるのか発行制御部11により発行されたVID/DID情報読み出し命令に対するものであるのかを判定し、OS6により発行された命令に対するものである場合には、その受信データをOS6に出力し、発行制御部11により発行されたVID/DID情報読み出し命令に対するものである場合には、その受信データをカード情報レジスタ32に出力することにより受信データの分岐を行う。なお、カード1、2から発行された命令は全てOS6行きであるため行き先の判定は不要である。この行き先判定には命令およびデータ共通に付与されている発行元情報を参照して行われる。
【0040】
VID/DID情報格納レジスタ32は、データ行き先判定回路31から出力された、VID/DID情報読み出し命令に対するデータであるVID/DID情報を格納するためのものである。
【0041】
読み出し完了フラグ生成回路33は、DID/VID情報を採取済みであることを示すための読み出し完了フラグを生成する。受信データにはステータス情報が含まれているため、読み出し完了フラグ生成回路33は、このステータス情報が正常(Normal)の時に読み出し完了フラグを「オン」とし、スロット電源ステータスがオフ(装置停止またはカード交換時)時にはこの読み出し完了フラグを「オフ」とする。
【0042】
完了報告制御回路34は、発行制御部11により発行されたVID/DID情報読み出し命令に対するデータが正常に受信された時に診断プロセッサ3にVID/DID情報が採取されたことを報告するための回路である。この報告は読み出し完了フラグの前縁微分をとることにより1Tのみの報告となっている。
【0043】
受信カウンタ35は、VID/DID情報読み出しデータの受信回数を示しており、VID/DID情報が受信されたときにカウント値が1加算(+1)され、スロット51、52の電源ステータスがオフ(装置停止またはカード交換時)時に0(リセット)される。この受信カウンタ35は、受信したデータがエラーの時、同一カードへのVID/DID情報読み出し命令の再発行が永遠に行われるのを抑止するためのものであり、受信回数がある閾値以上になった場合、そのカードは故障であると判断しそのカードを使用不可にする。
【0044】
次に、本実施形態のPCIカード情報採取装置7の動作を図4に示すフローチャートを参照して詳細に説明する。カード1、2共に共通動作であるため、ここではカード1に対するVID/DID読み出し処理に関して詳細に説明する。
【0045】
スロット51、52のいずれかにカードが搭載されている場合、OS6は必ずカードに対して命令を発行する。そのため、PCIカード情報採取装置7においてOS6からの命令を受信すると(ステップ101)、ルーティング制御部10では、その命令の行き先(カード1かカード2)が判定される(ステップ102)。行き先がカード1の場合、PCIカード情報採取装置7の発行制御部11は、カード1用のVID/DID情報読み出し完了フラグを参照し(ステップ103)、「オン」の場合にはVID/DID情報を採取済みのためOS6からの命令を発行し(ステップ109)、「オフ」の場合にはOS6からの命令を停止してカード1に対するVID/DID情報読み出し命令を発行する(ステップ104)。
【0046】
その後、受信制御部12では、発行制御部11から発行された命令の読み出しデータを待ち続け(ステップ105)、読み出されたデータを受信した場合、その読み出しデータをレジスタへ格納し(ステップ106)、データのステータスをチェックする(ステップ107)。ステータスが正常の場合は、受信制御部12は、VID/DID情報読み出し完了フラグを「オン」にして診断プロセッサ3へ報告し(ステップ108)、発行制御部11では停止していたOS6からの命令を発行する(ステップ109)。
【0047】
読み出されたデータのステータスがエラーの場合、発行制御部11では、受信制御部12内の受信カウンタ35のカウンタ値である読み出し命令発行回数を閾値と比較し(ステップ110)、読み出し命令発行回数が閾値以下の場合は再度VID/DID情報読み出し命令の発行処理を行い(ステップ104)、閾値以上の場合はカード1は故障であると判断し閉塞(使用しない)する。また、カード交換時は、改めてVID/DID情報の読み出しが必要となるため、受信制御部12では、VID/DID情報読み出し命令を発行するか否かの判定条件となる読み出し完了フラグをオフとする。装置停止時またはカード交換時はスロット電源は必ずオフされるため、スロット電源オフをトリガとして読み出し完了フラグはオフとなるようにする。尚、閉塞処理は本発明に直接関与していないため説明は省略する。
【0048】
本実施形態のPCIカード情報採取装置7によれば、PCIカードが交換された後に、そのPCIカードに対してOS6から命令が出された場合、発行制御部11において、その命令を停止し、替わりにVID/DID情報読み出し命令をそのPCIカードに対して出力する。そして、受信制御部12では、発行制御部11により発行されたVID/DID情報読み出し命令に対する受信データをレジスタに保持しておくようにする。従って、診断プロセッサ3はVID/DID情報読み出し命令を発行することなく交換されたPCIカードのVID/DID情報を採取することが可能となり、OS6からのPCIカードリセット処理と診断プロセッサからのVID/DID情報読み出し命令の競合を発生させることなく、正しいVID/DID情報を採取することが可能となる。
【0049】
そして、システムの運用中にPCIカードの交換がされた場合でも、交換されたPCIカードのVID/DID情報を確実に採取することができるようになることにより、診断プロセッサ3は、PCIカード個別に障害処理方法を設定することが可能となる。
【0050】
本実施形態では、PCIカード搭載用のスロットが2つの場合を用いて説明したが、本発明はこれに限定されるものではなく、スロットが3つ以上の場合でも同様に本発明を適用することができるものである。
【図面の簡単な説明】
【0051】
【図1】本発明の一実施形態のPCIカード情報採取装置7を含むコンピュータシステムの構成を示すブロック図である。
【図2】図1中の発行制御部11の構成を示すブロック図である。
【図3】図1中の受信制御部12の構成を示すブロック図である。
【図4】本実施形態のPCIカード情報採取装置7の動作を示すフローチャートである。
【符号の説明】
【0052】
1、2 カード
3 診断プロセッサ
4 スイッチ
1、52 スロット
6 OS(オペレーティングシステム)
7 PCIカード情報採取装置
10 ルーティング制御部
11 発行制御部
12 受信制御部
20 OS発行命令保持用レジスタ
21 送出命令判定回路
22 セレクタ
23 読み出し命令発行中フラグ生成回路
31 データ行き先判定回路
32 VID/DID情報格納レジスタ
33 読み出し完了フラグ生成回路
34 完了報告制御回路
35 受信カウンタ
101〜110 ステップ

【特許請求の範囲】
【請求項1】
スロットに搭載されているPCIカードの種別を表すVID/DID情報を採取するためのPCIカード情報採取装置であって、
OSからPCIカードに対して発行された命令を受信すると、受信した該命令がどのスロットに搭載されたPCIカードに対して発行されたものであるかを示すあて先情報を判定するルーティング制御部と、
前記ルーティング制御部により判定されたあて先情報と、各スロットに搭載されたPCIカードのVID/DID情報が取得済みであるか否かを示す読み出し完了フラグ情報とに基づいて、前記ルーティング制御部がOSから受信した命令のあて先となっているスロットに搭載されたPCIカードのVID/DID情報が採取済みであるか否かを判定し、まだVID/DID情報が採取されていないと判定された場合、前記OSからの命令を停止して当該PCIカードに対してVID/DID情報読み出し命令を発行する発行制御部と、
前記PCIカードからのデータを受信すると、受信した該データが、前記発行制御部により発行されたVID/DID情報読み出し命令に対するものであるのか前記OSから発行された命令に対するものであるのかを判定し、前記発行制御部により発行された命令に対するものである場合、受信した前記データをVID/DID情報としてレジスタに格納し、診断プロセッサにVID/DID情報を採取した旨を通知するとともに、当該PCIカードの前記読み出し完了フラグを採取済みとする受信制御部と、を備えているPCIカード情報採取装置。
【請求項2】
前記受信制御部は、前記発行制御部により発行された命令に対するVID/DID情報を受信した場合、前記発行制御部へVID/DID情報を受信した旨の受信報告を行い、
前記発行制御部は、VID/DID情報読み出し命令を発行してから前記受信制御部からの受信報告を確認するまでの間は、当該スロットのPCIカードに対するVID/DID情報読み出し命令を出力しないようにする請求項1記載のPCIカード情報採取装置。
【請求項3】
前記受信制御部は、前記スロットの電源ステータスがオフになった場合、電源ステータスがオフになったスロットに対応する読み出し完了フラグをリセットとして未採取とする請求項1または2記載のPCIカード情報採取装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate