(57)【要約】【課題】診断プロセッサからＰＣＩカードへの書き込みを可能とする。【解決手段】診断Ｉ／Ｆ制御部１０は、診断プロセッサ３から指示されたリクエストの種別、書き込み場所または読み出し場所であるＰＣＩカード４上のアドレス、さらに、リクエストの種別が書き込み処理である場合は書き込みデータを登録する。発行制御部１１は、診断Ｉ／Ｆ制御部１０の登録内容に基づき書き込み処理または読み出し処理を実行させるためのリクエストデータをＰＣＩカード４に発行する。受信制御部１２は、ＰＣＩカード４での書き込み処理または読み出し処理の結果を示すリプライデータをＰＣＩカード４から受信し、処理中のエラーの有無を示す完了結果ステータス、さらに、ＰＣＩカード４で読み出し処理が行われた場合の読み出しデータを抽出する。診断Ｉ／Ｆ制御部１０は、受信制御部１２にて抽出された完了結果ステータスや読み出しデータを登録する。【選択図】図１
2007128435.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと、ＰＣＩカードと、前記ＣＰＵとは独立に動作し、前記ＰＣＩカードにて発生した障害の診断を行う診断プロセッサとを有する情報処理装置において、
前記ＣＰＵとは独立に動作し、前記診断プロセッサからのリクエストの発行指示に基づいて書き込み処理または読み出し処理を実行させるためのリクエストデータを前記ＰＣＩカードに対して発行し、当該リクエストデータに応じて前記ＰＣＩカードにて行われた書き込み処理または読み出し処理の結果を示すリプライデータを前記ＰＣＩカードから受信する診断アクセス装置をさらに有する情報処理装置。
【請求項２】
前記診断アクセス装置は、
前記診断プロセッサから指示されたリクエストの種別が書き込み処理または読み出し処理のいずれであるかを示すリクエスト種別情報と、前記診断プロセッサから書き込み場所または読み出し場所として指示された前記ＰＣＩカード上のアドレスとを登録し、さらに、前記リクエストの種別が書き込み処理である場合は前記診断プロセッサから指示された書き込みデータを登録する診断Ｉ／Ｆ制御部と、
前記診断Ｉ／Ｆ制御部に登録された前記リクエスト種別情報と前記ＰＣＩカード上のアドレスとを用い、さらに、前記リクエストの種別が書き込みである場合は前記診断Ｉ／Ｆ制御部に登録された書き込みデータを用いて、前記リクエストデータを生成して前記ＰＣＩカードに発行する発行制御部と、
前記発行制御部にて発行されたリクエストデータに応じた前記リプライデータを前記ＰＣＩカードから受信し、当該リプライデータから、前記ＰＣＩカードでの処理中のエラーの有無を示す完了結果ステータスを抽出し、さらに、前記ＰＣＩカードで読み出し処理が行われた場合は読み出しデータを抽出する受信制御部とをさらに有し、
前記診断Ｉ／Ｆ制御部は、前記受信制御部にて抽出された前記完了結果ステータスを登録し、さらに、前記ＰＣＩカードで読み出し処理が行われた場合は前記受信制御部にて抽出された読み出しデータを登録する、請求項１に記載の情報処理装置。
【請求項３】
前記発行制御部は、前記診断プロセッサからのリクエストの発行指示に基づいて前記リクエストデータを生成した際、前記ＣＰＵからのリクエストの発行指示を受けていないことを確認した上で、前記生成したリクエストデータを前記ＰＣＩカードに発行する、請求項２に記載の情報処理装置。
【請求項４】
前記診断プロセッサは、ネットワークＩ／Ｆを有し、前記情報処理装置の外部に設けられた端末とネットワークを介して接続可能に構成されている、請求項２または３に記載の情報処理装置。
【請求項５】
ＣＰＵと、ＰＣＩカードと、前記ＣＰＵとは独立に動作し、前記ＰＣＩカードにて発生した障害の診断を行う診断プロセッサと有する情報処理装置における前記診断プロセッサから前記ＰＣＩカードへのアクセス方法であって、
前記ＣＰＵとは独立に動作する診断アクセス装置を設け、
前記診断アクセス装置が、前記診断プロセッサからのリクエストの発行指示に基づいて書き込み処理または読み出し処理を実行させるためのリクエストデータを前記ＰＣＩカードに対して発行するステップと、
前記診断アクセス装置が、前記リクエストデータに応じて前記ＰＣＩカードにて行われた書き込み処理または読み出し処理の結果を示すリプライデータを前記ＰＣＩカードから受信するステップとを有する方法。
【請求項６】
ＣＰＵと、ＰＣＩカードと、前記ＣＰＵとは独立に動作し、前記ＰＣＩカードにて発生した障害の診断を行う診断プロセッサと有する情報処理装置における前記診断プロセッサから前記ＰＣＩカードへのアクセス方法であって、
前記ＣＰＵとは独立に動作する診断アクセス装置を設け、
前記診断アクセス装置が、前記診断プロセッサから指示されたリクエストの種別が書き込み処理または読み出し処理のいずれであるかを示すリクエスト種別情報と、前記診断プロセッサから書き込み場所または読み出し場所として指示された前記ＰＣＩカード上のアドレスとを記憶装置に登録し、さらに、前記リクエストの種別が書き込み処理である場合は前記診断プロセッサから指示された書き込みデータを記憶装置に登録する第１のステップと、
前記診断アクセス装置が、前記第１のステップで記憶装置に登録された前記リクエスト種別情報と前記ＰＣＩカード上のアドレスとを用い、さらに、前記リクエストの種別が書き込みである場合は前記第１のステップで記憶装置に登録された書き込みデータを用いて、書き込み処理または読み出し処理を実行させるためのリクエストデータを生成して前記ＰＣＩカードに発行する第２のステップと、
前記診断アクセス装置が、前記第２のステップで発行されたリクエストデータに応じて前記ＰＣＩカードにて行われた書き込み処理または読み出し処理の結果を示すリプライデータを前記ＰＣＩカードから受信し、当該リプライデータから、前記ＰＣＩカードでの処理中のエラーの有無を示す完了結果ステータスを抽出し、さらに、前記ＰＣＩカードで読み出し処理が行われた場合は読み出しデータを抽出する第３のステップと、
前記診断アクセス装置が、前記第３のステップで抽出された前記完了結果ステータスを記憶装置に登録し、さらに、前記ＰＣＩカードで読み出し処理が行われた場合は前記第３のステップで抽出された読み出しデータを記憶装置に登録する第４のステップとを有する方法。
【請求項７】
前記第２のステップでは、前記診断プロセッサからのリクエストの発行指示に基づいて前記リクエストデータを生成した際に、前記ＣＰＵから発行指示を受けていないことを確認した上で、前記生成したリクエストデータを前記ＰＣＩカードに発行する、請求項６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＰＣＩ（Peripheral Component Interconnect）カード（詳細には、ＰＣＩ  ＩＯカード）と、ＰＣＩカードにて発生した障害の診断を行う診断プロセッサとを有する情報処理装置、情報処理装置におけるＰＣＩカードへのアクセス方法に関する。
【背景技術】
【０００２】
ＰＣＩカードにはコンフィグ空間とメモリ空間という２つの空間が存在しており、これらの空間にはエラー情報やカードの設定情報などが格納されている。
【０００３】
そのため、情報処理装置においては、ＰＣＩカードに障害が発生した場合、ＰＣＩカードの情報を用いれば、障害発生箇所がＰＣＩカードであることや障害発生原因を特定して障害解析を行うことが可能である。
【０００４】
しかし、従来の情報処理装置においては、ＣＰＵ（Central Processing Unit）を介してのみＰＣＩカードへのアクセスが可能であるため、ＣＰＵが動作不可能な状態になると、ＰＣＩカードへアクセスすることができなくなり、ＰＣＩカードの情報を読み出すことができない。従って、ＣＰＵが動作不可能な状態で、ＰＣＩカードに障害が発生した場合は、ＰＣＩカードの周辺回路の情報を基にして障害発生箇所を推測しなければならないため、障害発生箇所がＰＣＩカードであることを特定するのが非常に困難である。
【０００５】
また、ＰＣＩカードは、ＰＣＩバス上に複数実装される場合もある。このような場合に、ＰＣＩカードに障害が発生すると、複数のＰＣＩカードのどのカードで障害が発生したかといったことまで特定する必要がある。しかし、ＣＰＵが動作不可能な状態で、ＰＣＩカードに障害が発生した場合は、ＰＣＩカードの周辺回路の情報だけでＰＣＩカードを特定するのは非常に困難であり、障害解析を精度良く行うことができない。
【０００６】
そこで最近、特許文献１には、ＣＰＵとは独立に動作し、ＰＣＩカードのコンフィグ情報を読み出す診断プロセッサを設けた情報処理装置が開示されている。詳細には、特許文献１に開示された情報処理装置によれば、上位バスとＰＣＩバスとを接続するバスブリッジ内に、ＰＣＩカードからＰＣＩバスを介して収集したコンフィグ情報を格納するコンフィグ情報収集メモリを設け、診断プロセッサは、このコンフィグ情報収集メモリからコンフィグ情報を読み出している。
【特許文献１】特開平１０−２５４７３６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、特許文献１に開示された情報処理装置においては、診断プロセッサは、ＰＣＩカードのデータを読み出すことのみが可能で、ＰＣＩカードにデータを書き込むことができないため、ＰＣＩカードのＦＷ（Firmware）を更新することができない。
【０００８】
ＰＣＩカードのＦＷの更新は、ＰＣＩカードが本格的に動作を始めた後に行うと、接続状態や転送速度などの設定が変更されてしまうことから、ＰＣＩカードが誤動作し、情報処理装置が停止してしまう可能性がある。
【０００９】
そのため、従来は、ＣＰＵが、ＰＣＩカードが本格的に動作する前、より具体的には、ＢＩＯＳ（Basic Input/Output System）／ＥＦＩ（Extensible Firmware Interface）という装置起動プログラムの実行中に、ＰＣＩカードのＦＷを更新していた。
【００１０】
しかし、ＣＰＵが動作不可能な状態では上記のようにＰＣＩカードのＦＷを更新することはできず、また、診断プロセッサがＰＣＩカードのＦＷを更新することもできない。そのため、ＰＣＩカードのＦＷを更新するには、作業者が、ＦＤ（Floppy Disk）／ＣＤ（Compact Disc）などの媒体にＦＷデータを格納し、そのＦＷデータを用いてＦＷ更新作業を実施する必要があった。このようなＦＷ更新作業を数多くの情報処理装置が出荷された後に行うのは、非常に保守性が悪く問題となっていた。
【００１１】
そこで、本発明の目的は、診断プロセッサがＰＣＩカードからデータを読み出すだけでなく、ＰＣＩカードへデータを書き込むことも可能な情報処理装置、情報処理装置におけるＰＣＩカードへのアクセス方法を提供することにある。
【課題を解決するための手段】
【００１２】
上記目的を達成するために本発明は、
ＣＰＵと、ＰＣＩカードと、前記ＣＰＵとは独立に動作し、前記ＰＣＩカードにて発生した障害の診断を行う診断プロセッサとを有する情報処理装置において、
前記ＣＰＵとは独立に動作し、前記診断プロセッサからのリクエストの発行指示に基づいて書き込み処理または読み出し処理を実行させるためのリクエストデータを前記ＰＣＩカードに対して発行し、当該リクエストデータに応じて前記ＰＣＩカードにて行われた書き込み処理または読み出し処理の結果を示すリプライデータを前記ＰＣＩカードから受信する診断アクセス装置をさらに有することを特徴とする。
【００１３】
詳細には、前記診断アクセス装置は、
前記診断プロセッサから指示されたリクエストの種別が書き込み処理または読み出し処理のいずれであるかを示すリクエスト種別情報と、前記診断プロセッサから書き込み場所または読み出し場所として指示された前記ＰＣＩカード上のアドレスとを登録し、さらに、前記リクエストの種別が書き込み処理である場合は前記診断プロセッサから指示された書き込みデータを登録する診断Ｉ／Ｆ制御部と、
前記診断Ｉ／Ｆ制御部に登録された前記リクエスト種別情報と前記ＰＣＩカード上のアドレスとを用い、さらに、前記リクエストの種別が書き込みである場合は前記診断Ｉ／Ｆ制御部に登録された書き込みデータを用いて、前記リクエストデータを生成して前記ＰＣＩカードに発行する発行制御部と、
前記発行制御部にて発行されたリクエストデータに応じた前記リプライデータを前記ＰＣＩカードから受信し、当該リプライデータから、前記ＰＣＩカードでの処理中のエラーの有無を示す完了結果ステータスを抽出し、さらに、前記ＰＣＩカードで読み出し処理が行われた場合は読み出しデータを抽出する受信制御部とをさらに有し、
前記診断Ｉ／Ｆ制御部は、前記受信制御部にて抽出された前記完了結果ステータスを登録し、さらに、前記ＰＣＩカードで読み出し処理が行われた場合は前記受信制御部にて抽出された読み出しデータを登録する。
【００１４】
この構成によれば、診断プロセッサからアクセス制御装置を介してＰＣＩカードに対し、書き込み処理または読み出し処理を実行させるためのリクエストデータを直接発行しているため、ＰＣＩカードからデータを読み出すだけでなく、ＰＣＩカードへデータを書き込むことも可能となる。それにより、ＰＣＩカードのＦＷを更新することも可能となる。
【００１５】
また、前記発行制御部は、前記診断プロセッサからのリクエストの発行指示に基づいて前記リクエストデータを生成した際、前記ＣＰＵからのリクエストの発行指示を受けていないことを確認した上で、前記生成したリクエストデータを前記ＰＣＩカードに発行することとしても良い。
【００１６】
この構成によれば、診断プロセッサからのリクエストの発行指示とＣＰＵからのリクエストの発行指示とが競合した場合、ＣＰＵからの発行指示を優先し、診断プロセッサからの発行指示に基づき生成したリプライデータを、ＣＰＵからの発行指示が空いた時にのみ発行することが可能となる。
【００１７】
また、前記診断プロセッサは、ネットワークＩ／Ｆを有し、前記情報処理装置の外部に設けられた端末とネットワークを介して接続可能に構成されていても良い。
【００１８】
この構成によれば、外部の端末から診断プロセッサをリモートで操作することが可能となる。そのため、ＣＰＵが動作不可能な状態、つまりＯＳが起動されていない状態であっても、外部の端末からネットワークを介して診断プロセッサにデータを転送し、さらに、そのデータを診断プロセッサからアクセス制御装置を介してＰＣＩカードに転送することによりＰＣＩカードのデータを書き換えることが可能となる。よって、外部の端末からリモートでＰＣＩカードのＦＷを更新することも可能となる。
【発明の効果】
【００１９】
以上説明したように本発明においては、診断プロセッサからアクセス制御装置を介してＰＣＩカードに対し、書き込み処理または読み出し処理を実行させるためのリクエストデータを直接発行する構成としたため、診断プロセッサがＰＣＩカードのデータを読み出すだけでなく、ＰＣＩカードへデータを書き込むこともできるという効果が得られる。
【発明を実施するための最良の形態】
【００２０】
以下に、本発明を実施するための最良の形態について図面を参照して説明する。
【００２１】
図１を参照すると、本発明の一実施形態による情報処理装置６は、診断アクセス装置１、ＣＰＵ２、診断プロセッサ３、およびＰＣＩカード４から構成されている。
【００２２】
診断アクセス装置１および診断プロセッサ３は、ＣＰＵ２とは独立に動作を行うものであり、ＣＰＵ２が動作不可能な状態であっても、動作可能である。
【００２３】
診断プロセッサ３は、ＰＣＩカード４で発生した障害の診断を行うプロセッサである。
【００２４】
また、診断プロセッサ３は、ネットワークインターフェース（不図示）を備えており、情報処理装置６の外部にあるＰＣ（Personal Computer）などの端末５とＬＡＮ（Local Area Network）などのネットワークを介して接続されている。
【００２５】
従って、端末５は、ＣＰＵ２が動作不可能な状態であっても、診断プロセッサ３とのリンクは開通しているため、診断プロセッサ３に自由にアクセスし、診断プロセッサ３をリモートで操作することができる。
【００２６】
診断アクセス装置１は、診断Ｉ／Ｆ制御部１０、発行制御部１１、受信制御部１２、およびＰＣＩバスＩ／Ｆ１３から構成されている。
【００２７】
診断Ｉ／Ｆ制御部１０は、診断プロセッサ３からＰＣＩカード４に対するリクエストの発行指示を受けると、まず、診断プロセッサ３から指示されたリクエストの種別がメモリもしくはコンフィグ空間への書き込みまたは読み出しのいずれであるかを示すリクエスト種別情報、診断プロセッサ３から書き込み場所または読み出し場所として指示されたＰＣＩカード４上のアドレス、さらに、リクエストの種別が書き込みである場合は診断プロセッサ３から指示された書き込みデータを内部の該当するレジスタに登録する。続いて、診断Ｉ／Ｆ制御部１０は、内部の発行指示レジスタ２０１（図２参照）に“１”を登録する。
【００２８】
発行制御部１１は、診断Ｉ／Ｆ制御部１０の該当するレジスタに登録されているリクエスト種別情報とアドレスを用い、さらに、リクエストの種別が書き込みである場合は書き込みデータを用いて、ＰＣＩカード４に対するリクエストデータを生成する。そして、発行制御部１１は、診断Ｉ／Ｆ制御部１０の発行指示レジスタ２０１に“１”が登録されていること、すなわち診断プロセッサ３からリクエストの発行指示が出ていることを確認し、さらに、ＣＰＵ２からリクエストの発行指示が出されていないことを確認した上で、上記で生成したリクエストデータをＰＣＩバスＩ／Ｆ１３を介してＰＣＩカード４に発行する。また、発行制御部１１は、実際にリクエストデータを発行した際には、リクエストデータを発行したことを示す発行報告を診断Ｉ／Ｆ制御部１０に通知する。これを受けて、診断Ｉ／Ｆ制御部１０は、発行指示レジスタ２０１を“１”から“０”に切り替える。それにより、その後に発行制御部１１によりリクエストデータが発行されることが抑止される。
【００２９】
受信制御部１２は、発行制御部１１から発行されたリクエストデータに応じた書き込み処理または読み出し処理がＰＣＩカード４にて完了すると、ＰＣＩカード４からＰＣＩバスＩ／Ｆ１３を介して処理の結果を示すリプライデータを受信する。そして、受信制御部１２は、ＰＣＩカード４から受信したリプライデータがＣＰＵ２または診断プロセッサ３のどちらの発行指示に応じたリプライデータであるかを判定する。ここで、診断プロセッサ３の発行指示に応じたリプライデータである場合、受信制御部１２は、診断Ｉ／Ｆ制御部１０に対し、リクエストデータの受信が完了したことを示す完了報告と、ＰＣＩカード４での処理中のエラーの有無を示す完了結果ステータスとを通知し、さらに、ＰＣＩカード４で読み出し処理が行われた場合は読み出しデータを通知する。一方、ＣＰＵ２の発行指示に応じたリプライデータである場合、受信制御部１２は、ＣＰＵ２に対しそのリプライデータが有効であるか否かを示すリプライ報告を通知する。
【００３０】
診断Ｉ／Ｆ制御部１０は、受信制御部１２から完了報告が通知されると、内部の完了報告レジスタ２０２（図２参照）に“１”を登録し、受信制御部１２から通知された完了結果ステータスを内部の該当するレジスタに登録し、さらに、ＰＣＩカード４で読み出し処理が行われた場合は読み出しデータを内部の該当するレジスタに登録する。
【００３１】
診断プロセッサ３は、リクエストの発行指示を出してから、定期的に、診断Ｉ／Ｆ制御部１０の完了報告レジスタ２０２を参照している。完了報告レジスタ２０２に“１”が登録されると、診断プロセッサ３は、受信制御部１２にてリプライデータの受信が完了したと判断し、診断Ｉ／Ｆ制御部１０の該当するレジスタに登録された完了結果ステータスを読み出し、さらに、ＰＣＩカード４で読み出し処理が行われた場合は読み出しデータを読み出して、ＰＣＩカード４に対する一連のアクセス処理を完了する。
【００３２】
以下に、診断Ｉ／Ｆ制御部１０、発行制御部１１、および受信制御部１２の詳細な構成について説明する。
【００３３】
最初に、診断Ｉ／Ｆ制御部１０の詳細な構成について説明する。
【００３４】
図２は、図１に示した診断Ｉ／Ｆ制御部１０の一構成例を示すブロック図である。
【００３５】
図２を参照すると、診断Ｉ／Ｆ制御部１０は、制御用レジスタ２０およびリクエスト生成用レジスタ２１の記憶装置から構成されている。なお、図２からは省略されているが、診断Ｉ／Ｆ制御部１０には、診断プロセッサ３および受信制御部１２からの各種のデータを制御用レジスタ２０およびリクエスト生成用レジスタ２１に登録する不図示の登録制御手段も設けられており、制御用レジスタ２０およびリクエスト生成用レジスタ２１へのデータの登録は、全てこの登録制御手段で行われるものとする。
【００３６】
制御用レジスタ２０は、上述した発行指示レジスタ２０１、上述した完了報告レジスタ２０２、受信制御部１２から通知される完了結果ステータスが登録される完了結果レジスタ２０３、および、診断プロセッサ３から指示されるリクエストの種別を示すリクエスト種別情報が登録されるリクエスト種別レジスタ２０４から構成されている。
【００３７】
リクエスト生成用レジスタ２１は、診断プロセッサ３から書き込み場所または読み出し場所として指示されるＰＣＩカード４上のアドレスが登録されるアドレスレジスタ２１１、および、診断プロセッサ３からＰＣＩカード４に書き込むべきデータとして指示される書き込みデータや、ＰＣＩカード４から実際に読み出されて受信制御部１２から通知される読み出しデータが登録されるデータレジスタ２１２から構成されている。
【００３８】
診断プロセッサ３は、ＰＣＩカード４へアクセスする際には、診断Ｉ／Ｆ制御部１０に対し、まず、ＰＣＩカード４に対するリクエストの種別が書き込みまたは読み出しのいずれであるかを示すリクエスト種別情報と、書き込み場所または読み出し場所であるＰＣＩカード４上のアドレスとを通知し、さらに、リクエストの種別が書き込みである場合は書き込みデータを通知する。これを受けて、診断Ｉ／Ｆ制御部１０は、まず、リクエスト種別情報およびアドレスをそれぞれリクエスト種別レジスタ２０４およびアドレスレジスタ２１１に登録し、さらに、リクエストの種別が書き込みである場合は書き込みデータをデータレジスタ２１２に登録する。最後に、診断Ｉ／Ｆ制御部１０は、発行指示レジスタ２０１に“１”を登録し、完了報告レジスタ２０２に“０”を登録する。なお、完了報告レジスタ２０２に“０”を登録するのは、前に行われていた処理により“１”のままになっている可能性があるためである。
【００３９】
発行制御部１１は、リクエスト種別レジスタ２０４に登録されたリクエスト種別情報と、アドレスレジスタ２１１に登録されたアドレスとを用い、さらに、リクエストの種別が書き込みである場合はデータレジスタ２１２に登録された書き込みデータを用いて、リクエストデータを生成する。そして、発行制御部１１は、発行指示レジスタ２０１に“１”が登録されていることを確認し、さらに、ＣＰＵ２からリクエストの発行指示が出されていないことを確認した上で、上記で生成したリクエストデータをＰＣＩカード４に対して発行する。実際にＰＣＩカード４に対してリクエストデータが発行されると、発行制御部１１は、リクエストデータを発行したことを示す発行報告を診断Ｉ／Ｆ制御部１０に通知する。これを受けて、診断Ｉ／Ｆ制御部１０は、発行指示レジスタ２０１を“１”から“０”に切り替える。それにより、以降にリクエストデータが発行されるのが抑止される。
【００４０】
受信制御部１２は、発行制御部１１から発行されたリクエストデータに応じた書き込み処理または読み出し処理がＰＣＩカード４にて完了すると、ＰＣＩカード４から処理結果を示すリプライデータを受信する。そして、受信制御部１２は、ＰＣＩカード４からのリプライデータが診断プロセッサ３の発行指示に応じたリプライデータであると判定すると、リプライデータを受信したことを示す完了報告と、ＰＣＩカード４でのエラーの有無を示す完了結果ステータスとを診断プロセッサ３に通知し、さらに、ＰＣＩカード４で読み出し処理が行われた場合は読み出しデータを診断プロセッサ３に通知する。これを受けて、診断プロセッサ３は、完了報告レジスタ２０２に“１”を登録し、完了結果レジスタ２０３に完了結果ステータスを登録し、さらに、ＰＣＩカード４で読み出し処理が行われた場合はデータレジスタ２１２に読み出しデータを登録する。
【００４１】
診断プロセッサ３は、リクエストの発行指示を出してから定期的に完了報告レジスタ２０２を参照しており、完了報告レジスタ２０２が“１”になると、受信制御部１２でリプライデータの受信が完了と判断し、まず、完了結果レジスタ２０３から完了結果ステータスを読み出し、さらに、ＰＣＩカード４で読み出し処理が行われた場合はデータレジスタ２１２から読み出しデータを読み出す。すなわち、データレジスタ２１２は、書き込み時および読み出し時に共用して使用される。
【００４２】
次に、発行制御部１１の詳細な構成について説明する。
【００４３】
図３は、図１に示した発行制御部１１の一構成例を示すブロック図である。
【００４４】
図３を参照すると、発行制御部１１は、データ生成回路３０およびセレクタ回路３１から構成されている。
【００４５】
データ生成回路３０は、診断Ｉ／Ｆ制御部１０の該当するレジスタに登録された、リクエスト種別情報、ＰＣＩカード４上のメモリ空間もしくはコンフィグ空間のアドレス、さらに、リクエストの種別が書き込みである場合は書き込みデータに基づいて、ＰＣＩカード４に対するリクエストデータを生成する。リクエストデータは、リクエストの種別が書き込みである場合は、指定したＰＣＩカード４上のアドレスに指定した書き込みデータを書き込む処理を実行させるためのデータとなり、リクエストの種別が読み出しである場合は、指定したＰＣＩカード４上のアドレスからデータを読み出す処理を実行させるためのデータとなる。
【００４６】
セレクタ回路３１は、診断プロセッサ３からの発行指示を受けてデータ生成回路３０で生成されたリクエストデータまたはＣＰＵ２から受信したリクエストデータのいずれかを選択し、選択したリクエストデータをＰＣＩバスＩ／Ｆ１３を介してＰＣＩカード４に発行する回路であり、ＡＮＤゲート３１１およびセレクタ３１２から構成されている。
【００４７】
ＡＮＤゲート３１１は、一方の入力端子に、診断プロセッサ３からリクエストの発行指示が出ているか否かを示す値、すなわち診断Ｉ／Ｆ制御部１０の発行指示レジスタ２０１の値が入力され、他方の入力端子に、ＣＰＵ２からリクエストの発行指示が出ているか否かを示す値が入力される。
【００４８】
セレクタ３１２は、ＡＮＤゲート３１１の出力が“１”である場合、すなわちＣＰＵ２の発行指示がない状態で、診断プロセッサ３の発行指示があった場合には、データ生成回路３０で生成されたリクエストデータを選択する。一方、ＡＮＤゲート３１１の出力が“０”である場合、すなわちＣＰＵ２の発行指示と診断プロセッサ３の発行指示が競合した場合には、ＣＰＵ２からの発行指示を優先し、ＣＰＵ２からのリクエストデータを選択する。
【００４９】
このように、発行制御部１１では、診断プロセッサ３の発行指示に基づき生成されたリクエストデータは、ＣＰＵ２の発行指示が空いた場合にのみ発行するようにしている。ただし、その結果、診断プロセッサ３の発行指示に基づくリクエストデータの発行は、診断プロセッサ３が発行指示を出してから待機させられる可能性がある。そのため、発行制御部１１は、実際にリクエストデータを発行したとき、すなわちＡＮＤゲート３１１の出力が“１”になったときに、診断Ｉ／Ｆ制御部１０に発行報告を通知するようにし、この通知を受け取るまでは、診断Ｉ／Ｆ制御部１０は、常に発行指示中の状態にしておく。
【００５０】
次に、受信制御部１２の詳細な構成について説明する。
【００５１】
図４は、図１に示した受信制御部１２の一構成例を示すブロック図である。
【００５２】
図４を参照すると、受信制御部１２は、データ判定回路４０、宛先判定回路４１、データ抽出回路４２、および完了通知回路４３から構成されている。
【００５３】
データ判定回路４０は、ＰＣＩカード４からＰＣＩバスＩ／Ｆ１３を介してデータを受信すると、受信したデータ内にあるコマンド情報を抽出し、抽出したコマンド情報に基づいてリクエストデータまたはリプライデータのいずれであるかを判定する。なお、データ判定回路４０は、受信したデータがＣＰＵ２からのリクエストデータである場合は、そのリクエストデータをＣＰＵ２に返却する。
【００５４】
宛先判定回路４１は、データ判定回路４０で判定されたリプライデータ内にある宛先情報を抽出し、抽出した宛先情報に基づいてリプライデータの宛先がＣＰＵ２または診断プロセッサ３のどちらであるか、すなわち、そのリプライデータがＣＰＵ２または診断プロセッサ３のどちらの発行指示に対するリプライデータであるかを判定する。
【００５５】
データ抽出回路４２は、データ判定回路４０で判定されたリプライデータから、ＰＣＩカード４でのエラーの有無を示す完了結果ステータス、さらに、ＰＣＩカード４で読み出し処理が行われた場合は読み出しデータを抽出し、診断Ｉ／Ｆ制御部１０に出力する。なお、データ抽出回路４２は、リプライデータの宛先がＣＰＵ２または診断プロセッサ３のどちらであるかに関わらず、リプライデータから完了結果ステータス（読み出しの場合は、完了結果ステータスと読み出しデータ）を常時抽出して診断Ｉ／Ｆ制御部１０に出力するようにしている。
【００５６】
完了通知回路４３は、診断Ｉ／Ｆ制御部１０に対し、リプライデータの受信を完了したことを示す完了報告を通知するか、または、ＣＰＵ２に対し、リプライデータが有効であることを示すリプライ報告を通知する回路であり、ＡＮＤゲート４３１，４３２から構成されている。
【００５７】
ＡＮＤゲート４３１は、一方の入力端子に、リプライデータの送信元のＰＣＩカード４からＰＣＩバスＩ／Ｆ１３を介して、そのリプライデータの有効性を示すデータＶａｌｉｄが入力され、他方の入力端子に、宛先判定回路４１の宛先判定結果が入力される。また、ＡＮＤゲート４３２は、一方の入力端子に、データＶａｌｉｄが入力され、他方の入力端子に、宛先判定回路４１の宛先判定結果が反転入力される。
【００５８】
従って、宛先判定回路４１がリプライデータの宛先をＣＰＵ２と判定して宛先判定結果“１”を出力し、データＶａｌｉｄが有効であることを示す“１”である場合は、ＣＰＵ２に対してはリプライデータが有効であることを示すリプライ報告“１”が出力されるが、診断Ｉ／Ｆ制御部１０に出力される完了報告は“０”のままである。逆に、宛先判定回路４１がリプライデータの宛先を診断プロセッサ３と判定して宛先判定結果“０”を出力し、データＶａｌｉｄが“１”である場合は、診断Ｉ／Ｆ制御部１０に対してはリプライデータの受信を完了したことを示す完了報告“１”が出力されるが、ＣＰＵ２に出力されるリプライ報告は“０”のままである。
【００５９】
このように、完了通知回路４３は、ＣＰＵ２へのリプライ報告と診断プロセッサ３への完了報告とが両方に重複して通知されないように排他制御にしてある。
【００６０】
なお、診断Ｉ／Ｆ制御部１０は、完了通知回路４３からの完了報告が“１”になったことをトリガとして、データ抽出回路４２から常時出力されている完了結果ステータス（読み出しの場合は、完了結果ステータスと読み出しデータ）を取り込み、該当するレジスタに登録するようにする。
【００６１】
以下に、図１に示した情報処理装置６における診断プロセッサ３からＰＣＩカード４へのアクセス方法について、図５のフローチャートを参照して説明する。
【００６２】
図５を参照すると、まず、診断プロセッサ３は、ＰＣＩカード４に対するリクエストの発行指示を診断Ｉ／Ｆ制御部１０へ通知すると同時に、ストール監視用の監視タイマーを起動する（ステップ５０１）。
【００６３】
これを受けて、診断Ｉ／Ｆ制御部１０は、リクエスト種別レジスタ２０４にリクエスト種別情報を、アドレスレジスタ２１１に書き込み場所または読み出し場所となるＰＣＩカード４上のアドレスを、さらに、リクエストの種別が書き込みである場合はデータレジスタ２１２に書き込みデータをそれぞれ登録するとともに、発行指示レジスタ２０１に“１”を、完了報告レジスタ２０２に“０”をそれぞれ登録する（ステップ５０２）。
【００６４】
次に、発行制御部１１は、リクエスト種別レジスタ２０４に登録されたリクエスト種別情報、アドレスレジスタ２１１に登録されたＰＣＩカード４上のアドレス、さらに、リクエストの種別が書き込みである場合はデータレジスタ２１２に登録された書き込みデータに基づき、ＰＣＩカード４に対するリクエストデータを生成する（ステップ５０３）。
【００６５】
次に、発行制御部１１は、発行指示レジスタ２０１を参照し、発行指示ステータスが“１”であるか否か、すなわち、診断プロセッサ３からのリクエストの発行指示があるか否かを判定する（ステップ５０４）。
【００６６】
ところで、発行指示は、ＣＰＵ２からのものと診断プロセッサ３からのものとの２種類があり、発行指示が競合した場合は、ＣＰＵ２からのものを優先する。そこで、ステップ５０４で診断プロセッサ３からの発行指示があると判定した場合、続いて、発行制御部１１は、ＣＰＵ２からの発行指示があるか否かを判定する（ステップ５０５）。
【００６７】
発行制御部１１は、ステップ５０５でＣＰＵ２からの発行指示がないと判定した場合、ステップ５０３で診断プロセッサ３からの発行指示に基づき生成したリクエストデータをＰＣＩカード４に対して発行する（ステップ５０６）。
【００６８】
発行制御部１１からＰＣＩカード４に対してリクエストデータが発行されると、ＰＣＩカード４は、リクエストデータに応じて書き込み処理または読み出し処理を行う。受信制御部１２は、ＰＣＩカード４での処理が完了するまで、ＰＣＩカード４からのリプライデータの受信待ち状態になる（ステップ５０７）。
【００６９】
受信制御部１２は、ＰＣＩカード４からリプライデータを受信すると、リプライデータ内の宛先情報に基づいて、リプライデータの宛先が診断プロセッサ３またはＣＰＵ２のどちらであるかを判定する（ステップ５０８）。リプライデータの宛先が診断プロセッサ３であった場合は、受信制御部１２は、診断Ｉ／Ｆ制御部１０に対し、完了報告を通知するとともに、ＰＣＩカード４でのエラーの有無を示す完了結果ステータスをリプライデータから抽出して通知し、さらに、ＰＣＩカード４で読み出し処理が行われた場合は読み出しデータをリプライデータから抽出して通知する（ステップ５０９）。
【００７０】
診断Ｉ／Ｆ制御部１０は、受信制御部１２からの完了報告の通知を受けると、完了結果ステータスを完了結果レジスタ２０３に登録し、さらに、ＰＣＩカード４で読み出し処理が行われた場合は読み出しデータをデータレジスタ２１２に登録する。最後に、診断Ｉ／Ｆ制御部１０は、完了報告レジスタ２０２を“０”から“１”に切り替える（ステップ５１０）。
【００７１】
診断プロセッサ３は、ステップ５０１で発行指示を出してから、定期的に完了報告レジスタ２０２を参照しており、完了報告レジスタ２０２が“１”になると、受信制御部１２でのリクエストデータの受信が完了した判断し、完了結果レジスタ２０３から完了結果ステータスを読み出し、さらに、ＰＣＩカード４で読み出し処理が行われた場合はデータレジスタ２１２から読み出しデータを読み出す（ステップ５１１）。
【００７２】
以上の処理により、診断プロセッサ３からＰＣＩカード４に対する一連のアクセス処理が完了する。
【００７３】
上記の一連のアクセス処理中、診断プロセッサ３は、ストール監視を行っており、ステップ５０１で起動した監視タイマーの値がある規定値を超えても処理が終わらない場合はストールしたものと判断し、強制的に全ての処理を終了させる（ステップ５１２）。
【図面の簡単な説明】
【００７４】
【図１】本発明の一実施形態による情報処理装置の構成を示すブロック図である。
【図２】図１に示した診断Ｉ／Ｆ制御部の構成を示すブロック図である。
【図３】図１に示した発行制御部の構成を示すブロック図である。
【図４】図１に示した受信制御部の構成を示すブロック図である。
【図５】図１に示した情報処理装置における診断プロセッサからＰＣＩカードへのアクセス方法を説明するフローチャートである。
【符号の説明】
【００７５】
１    診断アクセス装置
２    ＣＰＵ
３    診断プロセッサ
４    ＰＣＩカード
５    端末
６    情報処理装置
１０    診断Ｉ／Ｆ制御部
１１    発行制御部
１２    受信制御部
１３    ＰＣＩバスＩ／Ｆ
【図１】
2007128435.tif 000003
【図２】
2007128435.tif 000004
【図３】
2007128435.tif 000005
【図４】
2007128435.tif 000006
【図５】
2007128435.tif 000007