(57)【要約】【課題】情報処理装置の性能劣化を低減する入出力制御装置、情報処理装置及び入出力制御装置の制御方法を提供する。【解決手段】ＰＣＩｅ処理部１２は、ＰＣＩデバイスに接続する。ＢＤＦ情報抽出部２１２は、エラーの発生通知を受けてエラーが発生したＰＣＩデバイスを特定する。ＡＥＲアドレス探索部２２１は、ＢＤＦ情報抽出部２１２により特定されたＰＣＩデバイスが保持するエラーに関するエラー情報の格納場所であるＡＥＲアドレスを検出する。エラー情報取得部２３１は、ＰＣＩデバイスにおけるＡＥＲアドレス探索部２２１により検出されたＡＥＲアドレスからエラー情報を収集する。割込判定部２４４は、エラー情報取得部２３１により収集されたエラー情報をコアへ送信する。【選択図】図３
2016186719.tif 000002
【特許請求の範囲】
【請求項１】
処理装置に接続する入出力制御装置において、
エラーの発生通知を受けて前記エラーが発生した処理装置を特定する特定部と、
前記特定部により特定された処理装置が保持するエラーに関するエラー情報の格納場所を検出する検出部と、
前記処理装置における前記検出部により検出された前記格納場所から前記エラー情報を収集する収集部と、
前記収集部により収集された前記エラー情報を演算処理装置へ送信する送信部と
を備えたことを特徴とする入出力制御装置。
【請求項２】
前記送信部は、前記エラー情報の送信前に、前記特定部が他のエラーの発生通知を受信した場合、前記他のエラーに関する前記エラー情報が前記収集部により収集されるまで待機し、収集された全ての前記エラー情報をまとめて前記演算処理装置へ送信することを特徴とする請求項１に記載の入出力制御装置。
【請求項３】
前記送信部は、前記エラー情報の送信の待機中に、前記収集部により収集された前記エラー情報の数が閾値に達した場合、その時点までに収集された前記エラー情報を前記演算処理装置へ送信することを特徴とする請求項２に記載の入出力制御装置。
【請求項４】
前記処理装置は、前記エラー情報を格納する記憶部を有し、
前記検出部は、前記記憶部における前記エラー情報が格納場所のアドレスを検出することを特徴とする請求項１〜３のいずれか一つに記載の入出力制御装置。
【請求項５】
前記記憶部は、前記エラー情報を含む複数の情報を格納しており、各前記情報は次の情報の位置を示す位置情報を含み、
前記検出部は、前記位置情報を基に、前記記憶部に格納された複数の前記情報の中の所定の情報から次の情報を順次検出していくことで前記エラー情報の格納場所を検出することを特徴とする請求項１〜４のいずれか一つに記載の入出力制御装置。
【請求項６】
前記検出部は、起動時に前記処理装置の前記記憶部における前記エラー情報の格納場所の情報を予め保持することを特徴とする請求項１〜４のいずれか一つに記載の入出力制御装置。
【請求項７】
前記エラーの発生通知を受けて、発生した前記エラーのレベルを判定し、前記エラーが重大なエラーの場合、前記送信部に前記エラーの発生通知の前記演算処理装置への送信を行わせ、前記エラーが前記重大なエラーでない場合、前記検出部に前記エラーの発生通知を送信する判定部をさらに備えたことを特徴とする請求項１〜６のいずれか一つに記載の入出力制御装置。
【請求項８】
演算処理部と、
前記演算処理部からの指示を受けて処理を行う処理装置と、
前記演算処理部と前記処理装置との間の通信を仲介するスイッチと、
エラーの発生通知を受けて前記エラーが発生した前記処理装置を特定する特定部と、
前記特定部により特定された前記処理装置が保持する前記エラーに関するエラー情報の格納場所を検出する検出部と、
前記処理装置における前記検出部により検出された前記格納場所から前記エラー情報を収集する収集部と、
前記収集部により収集された前記エラー情報を前記演算処理部へ送信する送信部と
を備えたことを特徴とする情報処理装置。
【請求項９】
処理装置に接続する入出力装置の制御方法において
前記入出力装置が有する特定部が、エラーの発生通知を受けて前記エラーが発生した処理装置を特定し、
前記入出力装置が有する検出部が、前記特定部により特定された前記処理装置が保持するエラーに関するエラー情報の格納場所を検出し、
前記入出力装置が有する収集部が、前記処理装置における検出した前記格納場所から前記エラー情報を収集し、
前記入出力装置が有する送信部が、収集した前記エラー情報を演算処理部へ送信する
ことを特徴とする入出力制御装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入出力制御装置、情報処理装置及び入出力制御装置の制御方法に関する。
【背景技術】
【０００２】
サーバやクライアントＰＣ（Personal  Computer）などの情報処理装置において、機能の拡張を行う拡張カードを実装するため、ＰＣＩ（Peripheral  Component  Interconnect）Ｅｘｐｒｅｓｓ（以下、「ＰＣＩｅ」という）バスを備えたものが普及している。ＰＣＩｅバスを用いた通信では、ハードウェアの故障や劣化によってエラーが発生することがある。そのようなエラーを検出するための仕組みとして、ＰＣＩデバイスには、ＡＥＲ（Advanced  Error  Reporting）と呼ばれる機能に対応するものがある。
【０００３】
ＰＣＩデバイスは、ＡＥＲで定義されたエラーを検出すると、自己に搭載されたＡＥＲレジスタにエラー要因を記録する。また、ＰＣＩデバイスは、ＡＥＲレジスタへのエラー要因の記録と同時に、Ｍｅｓｓａｇｅと呼ばれるパケットを発行し、ＰＣＩｅバスを経由してＣＰＵ（Central  Processing  Unit）上で稼働するＯＳ（Operating  System）へＭｅｓｓａｇｅを送信することで、エラーの発生を通知する。
【０００４】
ＯＳは、Ｍｅｓｓａｇｅを受け取ると、Ｍｅｓｓａｇｅを送出したＰＣＩデバイスのＡＥＲレジスタに格納されている情報を、ＰＣＩｅバスを介して読み出す。そして、ＯＳは、エラー要因毎に動作を決定した後、エラー処理を完了する。
【０００５】
なお、ＰＣＩｅに関する技術として、エラーをカウントし、エラーの発生回数が所定回数以上になった場合に操作者に通知を行う従来技術がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−１４０２４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、ＰＣＩｅバスには、複数のＰＣＩｅデバイスが接続されていることが多い。そのため、複数のＰＣＩデバイスで同時にエラーが発生した場合や、単一のＰＣＩデバイスから短時間に複数のエラーが発生した場合、ＯＳは、大量の割り込みを処理することになる。そのため、ＯＳには、割り込みの処理により大きな負荷がかかってしまう。そして、ＯＳに負荷がかかると、ＯＳ上で稼働しているジョブの性能劣化が発生するおそれがある。
【０００８】
また、エラーの発生回数によって通知を行う従来技術を用いても、エラー発生による性能劣化を把握することはできるが、割り込みによる性能劣化自体を低減することは困難である。
【０００９】
開示の技術は、上記に鑑みてなされたものであって、情報処理装置の性能劣化を低減する入出力制御装置、情報処理装置及び入出力制御装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本願の開示する入出力制御装置、情報処理装置及び入出力制御装置の制御方法は、一つの態様において、入出力制御装置は処理装置に接続する。特定部は、エラーの発生通知を受けて前記エラーが発生した処理装置を特定する。検出部は、前記特定部により特定された処理装置が保持するエラーに関するエラー情報の格納場所を検出する。収集部は、前記処理装置における前記検出部により検出された前記格納場所から前記エラー情報を収集する。送信部は、前記収集部により収集された前記エラー情報を演算処理部へ送信する。
【発明の効果】
【００１１】
本願の開示する入出力制御装置、情報処理装置及び入出力制御装置の制御方法の一つの態様によれば、情報処理装置の性能劣化を低減することができるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、情報処理装置におけるＰＣＩｅバスを表す概略構成図である。
【図２】図２は、実施例１に係るエラー処理部の動作の概要を説明するための図である。
【図３】図３は、実施例１に係るエラー処理部の詳細を表すブロック図である。
【図４】図４は、ＡＥＲアドレスの探索方法を説明するための図である。
【図５】図５は、実施例１に係るエラー処理部によるエラー情報の通知処理のフローチャートである。
【図６】図６は、実施例２に係るエラー処理部の詳細を表すブロック図である。
【図７】図７は、実施例２に係るエラー処理部によるエラー情報の通知処理のフローチャートである。
【図８】図８は、実施例３に係るエラー処理部の動作の概要を説明するための図である。
【図９】図９は、実施例３に係るエラー処理部の詳細を表すブロック図である。
【図１０】図１０は、ＡＥＲアドレステーブルに対するＡＥＲアドレスの登録及び取得の処理を説明するための図である。
【発明を実施するための形態】
【００１３】
以下に、本願の開示する入出力制御装置、情報処理装置及び入出力制御装置の制御方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する入出力制御装置、情報処理装置及び入出力制御装置の制御方法が限定されるものではない。
【実施例１】
【００１４】
図１は、情報処理装置におけるＰＣＩｅバスを表す概略構成図である。図１に示すようにＰＣＩｅバスを有する情報処理装置は、ＣＰＵ１、ＰＣＩｅスイッチ２及びＰＣＩデバイス３Ａ〜３Ｄを有する。ここで、図１では、ＰＣＩデバイス３Ａ〜３Ｄという４つのＰＣＩデバイスを記載したが、情報処理装置に搭載されるＰＣＩデバイスの数に特に制限はない。以下では、ＰＣＩデバイス３Ａ〜３Ｄを区別しない場合は、単に「ＰＣＩデバイス３」という。
【００１５】
ＣＰＵ１は、ＰＣＩｅスイッチ２にバスを介して接続する。また、ＰＣＩｅスイッチ２は、ＰＣＩデバイス３Ａ〜３Ｄと接続する。
【００１６】
ＰＣＩｅスイッチ２は、ルートコンプレックス１２２に複数のＰＣＩデバイス３を接続するための機器である。ＰＣＩｅスイッチ２は、ルートコンプレックス１２２に接続するポートを有する。さらに、ＰＣＩｅスイッチ２は、ＰＣＩデバイス３を接続するためのポートを有する。このように、実際にはＣＰＵ１とＰＣＩデバイス３とはＰＣＩｅスイッチ２を介してデータや命令の送受信を行うが、説明を分かり易くするために、以下の説明ではＣＰＵ１とＰＣＩデバイス３とが直接データや命令の送受信を行うように説明する場合がある。
【００１７】
ＰＣＩデバイス３は、ＰＣＩｅの規格に準拠したデバイスである。ＰＣＩデバイス３には、例えば、ＳＡＴＡ（Serial  Advanced  Technology  Attachment）コントローラやイーサネット（登録商標）コントローラがある。ＳＡＴＡコントローラは、例えば、ハードディスク、ＳＳＤ（Solid  State  Drive）又は光ドライブなどが接続される。また、イーサネットコントローラは、ネットワークに接続するためのデバイスである。
【００１８】
ＰＣＩデバイス３は、コア１１からの命令を受けて、受信した命令にしたがい処理を行う。その後、ＰＣＩデバイス３は、命令に対する応答をコア１１に返信する。また、ＰＣＩデバイス３は、メモリ（不図示）との間でＤＭＡ（Direct  Memory  Access）によるデータ転送を行う。た、エラーが発生した場合、ＰＣＩデバイス３は、Ｍｅｓｓａｇｅをルートコンプレックス１２２へ送信する。
【００１９】
さらに、ＰＣＩデバイス３は、ＰＣＩデバイス３を制御するために用いる情報が格納されるレジスタであるＰＣＩコンフィグレーション空間を有する。ＰＣＩコンフィグレーション空間には、エラー情報が格納されるＡＥＲレジスタが含まれる。エラー情報とは、エラー要因などの障害の内容を示す情報である。以下では、ＡＥＲレジスタのＰＣＩコンフィグレーション空間におけるアドレスを、「ＡＥＲアドレス」という。また、ＡＥＲレジスタが、「記憶部」の一例にあたる。
【００２０】
ＰＣＩデバイス３は、エラー発生時に、発生したエラーに関するエラー情報をＡＥＲレジスタに格納する。例えば、ポートに接続されたＰＣＩｅバスのリンク切れが発生した場合には、ＰＣＩデバイス３は、ＡＥＲレジスタに、「Surprise  Down  Error」と記録する。このＰＣＩデバイス３が、「処理装置」の一例にあたる。
【００２１】
ＣＰＵ１は、コア１１及びＰＣＩｅ処理部１２を有する。コア１１は、演算処理装置である。コア１１は、ホストブリッジ１２１を介してルートコンプレックス１２２に接続する。コア１１は、情報処理装置の電源投入時、ＰＣＩｅスイッチ２に接続されたＰＣＩデバイス３の情報の入力をホストブリッジ１２１から受ける。そして、コア１１は、各ＰＣＩデバイス３のデバイス位置情報を生成する。
【００２２】
ここで、デバイス位置情報とは、コア１１に対するＰＣＩｅスイッチ２を介したＰＣＩデバイス３の位置を示す情報であり、言い換えれば、ルートコンプレックス１２２を頂点としたデバイスツリーにおける各ＰＣＩデバイス３の位置を示す情報である。具体的には、デバイス位置情報は、バス（Bus）番号、デバイス（Device）番号、ファンクション（Function）番号で表される。以下では、デバイス位置情報を、デバイス位置情報に含まれる各番号の頭文字を取って「ＢＤＦ（登録商標）」と表す場合がある。コア１１は、ＰＣＩｅスイッチ２に接続されたＰＣＩデバイス３の初期化を行う。
【００２３】
また、コア１１は、ホストブリッジ１２１、ルートコンプレックス１２２及びＰＣＩｅスイッチ２を介してＰＣＩデバイス３に命令を送信し、また、ＰＣＩデバイス３から応答を受信する。
【００２４】
ＰＣＩｅ処理部１２は、入出力制御装置である。ＰＣＩｅ処理部１２は、ホストブリッジ１２１、ルートコンプレックス１２２及びエラー処理部１２３を有する。ＰＣＩｅ処理部１２は、例えば、ＬＳＩ（Large  Scale  Integration）で実現される。
【００２５】
ホストブリッジ１２１は、コア１１、ルートコンプレックス１２２とバスで接続される。ホストブリッジ１２１は、コア１１から送られてきた命令のプロトコル変換を行うデバイスである。具体的には、ホストブリッジ１２１は、コア１１から送られてきた命令をＰＣＩｅの仕様規定にあわせて転送するための情報をルートコンプレックス１２２に送信し、ＰＣＩｅバスを介して目的のＰＣＩデバイス３へ命令を送信させる。また、ホストブリッジ１２１は、エラー処理部１２３から取得したパケットを割込命令とともにコア１１へ送信する。
【００２６】
ルートコンプレックス１２２は、エラー処理部１２３及びホストブリッジ１２１を介してコア１１に接続する。また、ルートコンプレックス１２２は、ＰＣＩｅスイッチ２を介してＰＣＩデバイス３と接続する。ルートコンプレックス１２２は、ホストブリッジ１２１からの情報を基にＰＣＩデバイス３へ送信するパケットの生成を行うデバイスである。
【００２７】
具体的には、ルートコンプレックス１２２は、コア１１から送信された命令から、ホストブリッジ１２１から受信した設定にしたがってＰＣＩｅに準拠したパケットを作成する。そして、ルートコンプレックス１２２は、ＰＣＩｅスイッチ２を介してＰＣＩデバイス３へ生成したパケットを送信する。また、ルートコンプレックス１２２は、ＰＣＩデバイス３から送られてきたデータを、コア１１に繋がるシステムバスに合わせたプロトコルに変換してホストブリッジ１２１へ送信する。
【００２８】
すなわち、コア１１からルートコンプレックス１２２までの間はシステムバスで接続される。一方、ルートコンプレックス１２２からＰＣＩデバイス３までは、ＰＣＩｅのバスで接続される。
【００２９】
次に、エラー処理部１２３について説明する。まず、図２を参照して、本実施例に係るエラー処理部１２３の動作の概要について説明する。図２は、実施例１に係るエラー処理部の動作の概要を説明するための図である。
【００３０】
エラー処理部１２３は、ＰＣＩデバイス３においてエラーが発生すると、Ｍｅｓｓａｇｅをエラーが発生したＰＣＩデバイス３から受信する（ステップＳ１）。
【００３１】
次に、エラー処理部１２３は、受信したＭｅｓｓａｇｅから送信元のＰＣＩデバイス３のデバイス位置情報であるＢＤＦを取得する。次に、エラー処理部１２３は、ＢＤＦを用いてエラーが発生したＰＣＩデバイス３にアクセスする。そして、エラー処理部１２３は、ＰＣＩデバイス３のＰＣＩコンフィグレーション空間３１におけるＡＥＲレジスタ３２のＡＥＲアドレスを探索し特定する（ステップＳ２）。  
【００３２】
次に、エラー処理部１２３は、ＡＥＲアドレスを含むエラー情報の送信要求をＡＥＲレジスタ３２に送信する（ステップＳ３）。そして、エラー処理部１２３は、ＡＥＲレジスタ３２に格納されていた発生したエラーに関するエラー情報を取得する（ステップＳ４）。その後、エラー処理部１２３は、取得したエラー情報をコア１１へ送信する（ステップＳ５）。ここで、エラー処理部１２３は、エラーが複数発生した場合には、各エラーのエラー情報を取得するまで待機し、各エラーのエラー情報をまとめてコア１１へ送信する。
【００３３】
さらに、図３を参照して、エラー処理部１２３の詳細について説明する。図３は、実施例１に係るエラー処理部の詳細を表すブロック図である。
【００３４】
エラー処理部１２３は、パケット解析部２０１、ＡＥＲ情報収集部２０２、エラー情報収集部２０３、エラー情報管理部２０４及び割込通知部２０５を有する。
【００３５】
パケット解析部２０１は、エラー判定部２１１及びＢＤＦ情報抽出部２１２を有する。
【００３６】
エラー判定部２１１は、ＰＣＩデバイス３が出力したＭｅｓｓａｇｅをルートコンプレックス１２２から受信する。Ｍｅｓｓａｇｅには、いずれのデバイスからのリクエストであるかを示すリクエスタＩＤ（IDentification）や、メッセージコードなどが含まれる。そして、エラー判定部２１１は、メッセージコードからＭｅｓｓａｇｅであるかを確認する。Ｍｅｓｓａｇｅであることが確認できた場合、エラー判定部２１１は、ＭｅｓｓａｇｅをＢＤＦ情報抽出部２１２へ出力する。
【００３７】
ＢＤＦ情報抽出部２１２は、Ｍｅｓｓａｇｅの入力をエラー判定部２１１から受ける。そして、ＢＤＦ情報抽出部２１２は、Ｍｅｓｓａｇｅに格納されたリクエスタＩＤからＭｅｓｓａｇｅの出力元であるＰＣＩデバイス３のＢＤＦを取得する。そして、ＢＤＦ情報抽出部２１２は、取得したＢＤＦをＡＥＲ情報収集部２０２のＡＥＲアドレス探索部２２１へ出力する。このＢＤＦ情報抽出部２１２が、「特定部」の一例にあたる。
【００３８】
ＡＥＲ情報収集部２０２は、ＡＥＲアドレス探索部２２１及びＡＥＲアドレス通知部２２２を有する。
【００３９】
ＡＥＲアドレス探索部２２１は、Ｍｅｓｓａｇｅの出力元であるＰＣＩデバイス３のＢＤＦの入力をＢＤＦ情報抽出部２１２から受ける。そして、ＡＥＲアドレス探索部２２１は、取得したＢＤＦを用いてＰＣＩデバイス３にアクセスし、エラーが発生したＰＣＩデバイス３のＰＣＩコンフィグレーション空間３１におけるＡＥＲアドレスを探索する。
【００４０】
図４は、ＡＥＲアドレスの探索方法を説明するための図である。図４は、ＰＣＩコンフィグレーション空間３１を表す。そして、図４において、ＰＣＩコンフィグレーション空間３１の左側に記載された番号は、オフセットを表す。ＰＣＩコンフィグレーション空間３１は、ＰＣＩ互換コンフィグレーション空間３３とＰＣＩｅ拡張コンフィグレーション空間３４を有する。
【００４１】
ＡＥＲアドレス探索部２２１は、ＢＤＦを用いてアクセスしたＰＣＩデバイス３のＰＣＩコンフィグレーション空間３１におけるＰＣＩｅ拡張コンフィグレーション空間３４の先頭のデバイス機能レジスタを検出する。検出したデバイス機能レジスタがＡＥＲレジスタ３２でない場合、ＡＥＲアドレス探索部２２１は、先頭のデバイス機能レジスタが有するネクストケイパビリティポインタ（Next  Capability  Pointer）３００を確認する。ネクストケイパビリティポインタは、次のデバイス機能レジスタを示すアドレスを示す情報を有する。そして、ＡＥＲアドレス探索部２２１は、ネクストケイパビリティポインタ３００が示す次のデバイス機能レジスタを検出する。
【００４２】
このように、ＡＥＲアドレス探索部２２１は、先頭のデバイス機能レジスタからネクストケイパビリティポインタ３００を用いて順番にデバイス機能レジスタを検出していくことで、ＡＥＲレジスタ３２を探索する。そして、ＡＥＲアドレス探索部２２１は、この探索によりＡＥＲレジスタ３２が特定できると、特定したＡＥＲレジスタ３２のＡＥＲアドレスを取得する。ＡＥＲアドレス探索部２２１は、取得したＡＥＲアドレスをエラーが発生したＰＣＩデバイス３のＢＤＦとともにＡＥＲアドレス通知部２２２へ出力する。このＡＥＲアドレス探索部２２１が、「検出部」の一例にあたる。そして、ＡＥＲアドレスが、「格納場所」の一例にあたる。
【００４３】
ＡＥＲアドレス通知部２２２は、エラーが発生したＰＣＩデバイス３のＡＥＲアドレス及びＢＤＦの入力をＡＥＲアドレス探索部２２１から受ける。そして、ＡＥＲアドレス通知部２２２は、取得したＡＥＲアドレス及びＢＤＦをエラー情報収集部２０３のエラー情報取得部２３１へ出力する。また、ＡＥＲアドレス通知部２２２は、ＡＥＲアドレスの出力の通知をエラー情報管理部２０４の未処理メッセージ判定部２４１へ出力する。
【００４４】
エラー情報収集部２０３は、エラー情報取得部２３１及びエラー情報送信部２３２を有する。このエラー情報収集部２０３が、「収集部」の一例にあたる。
【００４５】
エラー情報取得部２３１は、エラーが発生したＰＣＩデバイス３のＡＥＲアドレス及びＢＤＦの入力をＡＥＲアドレス通知部２２２から受ける。次に、エラー情報取得部２３１は、取得したＢＤＦ及びＡＥＲアドレスを用いて、エラーが発生したＰＣＩデバイス３に対してエラー情報の取得要求を送信する。そして、エラー情報取得部２３１は、エラーが発生したＰＣＩデバイス３が有するＰＣＩコンフィグレーション空間３１におけるＡＥＲレジスタ３２に格納されたエラー情報を取得する。その後、エラー情報取得部２３１は、取得したエラー情報をエラー情報送信部２３２へ出力する。
【００４６】
エラー情報送信部２３２は、エラー情報の入力をエラー情報取得部２３１から受ける。そして、エラー情報送信部２３２は、取得したエラー情報をエラー情報管理部２０４のエラー情報記憶部２４３へ出力する。また、エラー情報送信部２３２は、エラー情報送信の通知を格納数カウント部２４２へ出力する。
【００４７】
エラー情報記憶部２４３は、メモリなどの記憶媒体を有する。エラー情報記憶部２４３は、エラー情報の入力をエラー情報送信部２３２から受けて、取得したエラー情報を格納する。
【００４８】
格納数カウント部２４２は、カウンタを有する。格納数カウント部２４２は、エラー情報送信の通知をエラー情報送信部２３２から受けると、カウンタを１つインクリメントする。そして、格納数カウント部２４２は、エラー情報送信の通知を受けた回数をカウントすることで、エラー情報記憶部２４３に格納されたエラー情報の数をカウントする。
【００４９】
格納数カウント部２４２は、エラー情報の送信の通知を割込判定部２４４から受けると、カウンタをリセットする。
【００５０】
また、格納数カウント部２４２は、エラー情報の蓄積数の閾値を予め記憶する。そして、格納数カウント部２４２は、エラー情報記憶部２４３に格納されたエラー情報の数、すなわちカウンタの値が閾値を超えた場合、エラー情報の送信命令を割込判定部２４４へ送信する。その後、格納数カウント部２４２は、カウンタをリセットする。
【００５１】
未処理メッセージ判定部２４１は、ＡＥＲアドレスの出力の通知をＡＥＲアドレス通知部２２２から受ける。そして、未処理メッセージ判定部２４１は、一つ前のＡＥＲアドレスの出力の通知を受信してから現在通知を受けるまでに割込判定部２４４からエラー情報の送信の通知を受けたか否かを判定する。
【００５２】
エラー情報の送信の通知を受けた場合、未処理メッセージ判定部２４１は、次のエラー情報が格納されるまでの待機を指示する待機命令を割込判定部２４４へ送信する。これに対して、エラー情報の送信の通知を受けていない場合、未処理メッセージ判定部２４１は、未処理のメッセージは無いと判定し待機する。
【００５３】
割込判定部２４４は、エラー情報記憶部２４３を監視する。そして、割込判定部２４４は、エラー情報記憶部２４３にエラー情報が格納されたか否かを判定する。エラー情報が格納されていない場合、割込判定部２４４は、エラー情報記憶部２４３にエラー情報が格納されるまで待機する。
【００５４】
一方、エラー情報記憶部２４３にエラー情報が格納された場合、割込判定部２４４は、エラー情報の送信命令を格納数カウント部２４２から受信したか否かを判定する。エラー情報の送信命令を受信していない場合、割込判定部２４４は、未処理メッセージ判定部２４１から待機命令を受信したか否かを判定する。待機命令を受信した場合、割込判定部２４４は、ＯＳへの割り込みを発行せずに、次のエラー情報が格納されるまで待機する。
【００５５】
これに対して、エラー情報の送信命令を受信した場合、及び、エラー情報の送信命令を受信しておらず且つ待機命令を受信していない場合、割込判定部２４４は、割り込みの実行を決定する。そして、割込判定部２４４は、エラー情報記憶部２４３に格納されたエラー情報のうち、格納されたと判定したエラー情報及びそれ以前に格納されたエラー情報を取得し、さらに、取得したエラー情報をエラー情報記憶部２４３から削除する。そして、割込判定部２４４は、ＯＳへの割り込みを発行するとともに、取得したエラー情報を割込通知部２０５のパケット生成部２５１へ出力する。
【００５６】
さらに、割込判定部２４４は、エラー情報の送信を未処理メッセージ判定部２４１及び格納数カウント部２４２へ通知する。この割込判定部２４４が、「送信部」の一例にあたる。
【００５７】
割込通知部２０５は、パケット生成部２５１及びパケット送信部２５２を有する。
【００５８】
パケット生成部２５１は、１つ又は複数のエラー情報及びＯＳへの割り込みの実行命令の入力を割込判定部２４４から受ける。そして、パケット生成部２５１は、取得したエラー情報を通知するパケットを生成する。そして、パケット生成部２５１は、生成したパケット及びＯＳへの割り込みの指示をパケット送信部２５２へ送信する。
【００５９】
パケット送信部２５２は、ＯＳへの割り込みの指示とともに、エラー情報を通知するパケットをパケット生成部２５１から受信する。そして、パケット送信部２５２は、受信したパケットをホストブリッジ１２１を介してコア１１へ送信し、ＯＳへの割り込みを実行する。
【００６０】
次に、図５を参照して、実施例１に係るエラー処理部１２３によるエラー情報の通知処理について説明する。図５は、実施例１に係るエラー処理部によるエラー情報の通知処理のフローチャートである。
【００６１】
エラー判定部２１１は、ＰＣＩｅスイッチ２及びルートコンプレックス１２２を介して、ＰＣＩデバイス３から送信されたＭｅｓｓａｇｅを受信する（ステップＳ１０１）。エラー判定部２１１は、Ｍｅｓｓａｇｅであることを確認し、ＭｅｓｓａｇｅをＢＤＦ情報抽出部２１２へ出力する。
【００６２】
ＢＤＦ情報抽出部２１２は、Ｍｅｓｓａｇｅの入力をエラー判定部２１１から受ける。そして、ＢＤＦ情報抽出部２１２は、取得したＭｅｓｓａｇｅのリクエストＩＤからＢＤＦを抽出し、エラーが発生したＰＣＩデバイス３を特定する（ステップＳ１０２）。次に、ＢＤＦ情報抽出部２１２は、抽出したＢＤＦをＡＥＲアドレス探索部２２１へ出力する。
【００６３】
ＡＥＲアドレス探索部２２１は、ＢＤＦの入力をＢＤＦ情報抽出部２１２から受ける。そして、ＡＥＲアドレス探索部２２１は、取得したＢＤＦを用いて、エラーが発生したＰＣＩデバイス３にアクセスし、エラーが発生したＰＣＩデバイス３におけるＡＥＲアドレスを探索して特定する（ステップＳ１０３）。ＡＥＲアドレス探索部２２１は、特定したＡＥＲアドレスをＢＤＦとともにＡＥＲアドレス通知部２２２へ出力する。ＡＥＲアドレス通知部２２２は、ＡＥＲアドレス及びＢＤＦの入力をＡＥＲアドレス探索部２２１から受ける。そして、ＡＥＲアドレス通知部２２２は、ＡＥＲアドレス及びＢＤＦをエラー情報取得部２３１へ出力するとともに、ＡＥＲアドレスの出力の通知を未処理メッセージ判定部２４１へ出力する。未処理メッセージ判定部２４１は、前回ＡＥＲアドレスの出力を通知してから今回の通知までに、エラー情報の送信の通知を割込判定部２４４から受信していなければ、待機命令を割込判定部２４４へ出力する。
【００６４】
エラー情報取得部２３１は、ＡＥＲアドレス及びＢＤＦの入力をＡＥＲアドレス通知部２２２から受ける。そして、エラー情報取得部２３１は、取得したＡＥＲアドレス及びＢＤＦを用いて、エラーが発生したＰＣＩデバイス３のＡＥＲレジスタ３２に格納されたエラー情報を収集する（ステップＳ１０４）。エラー情報取得部２３１は、収集したエラー情報をエラー情報送信部２３２へ出力する。
【００６５】
エラー情報送信部２３２は、エラー情報の入力をエラー情報取得部２３１から受ける。そして、エラー情報送信部２３２は、取得したエラー情報をエラー情報記憶部２４３に格納する（ステップＳ１０５）。また、エラー情報送信部２３２は、エラー情報送信を格納数カウント部２４２に通知し、格納数カウント部２４２のカウンタを１つインクリメントさせる。格納数カウント部２４２は、カウンタの値が閾値を超えた場合、エラー情報の送信命令を割込判定部２４４へ送信する。
【００６６】
割込判定部２４４は、エラー情報がエラー情報記憶部２４３に格納されると、待機命令の入力を未処理メッセージ判定部２４１から受けたか否かにより、未処理のＭｅｓｓａｇｅがあるか否かを判定する（ステップＳ１０６）。未処理のＭｅｓｓａｇｅが無い場合（ステップＳ１０６：否定）、割込処理部２４４は、ステップＳ１０８へ進む。
【００６７】
これに対して、未処理のＭｅｓｓａｇｅを受けた場合（ステップＳ１０６：肯定）、割込判定部２４４は、エラー情報の送信命令を格納数カウント部２４２から受けたか否かにより、エラー情報記憶部２４３に格納されたエラー情報の数が閾値以下か否かを判定する（ステップＳ１０７）。格納されたエラー情報の数が閾値以下の場合（ステップＳ１０７：肯定）、処理は、ステップＳ１０４へ戻る。ここで、図５では、説明の都合上、ステップＳ１０４以降の処理がステップＳ１０１〜Ｓ１０３に続く処理として記載したが、ステップＳ１０１〜Ｓ１０３の処理は、ステップＳ１０４以降の処理の実行と独立して実行されてもよい。
【００６８】
格納されたエラー情報の数が閾値を超える場合（ステップＳ１０７：否定）、割込判定部２４４は、エラー情報記憶部２４３からエラー情報を取得する。そして、割込判定部２４４は、割込命令及びエラー情報をパケット生成部２５１へ出力する。
【００６９】
パケット生成部２５１は、割込命令及びエラー情報の入力を割込判定部２４４から受ける。そして、パケット生成部２５１は、エラー情報を通知するパケットを生成する（ステップＳ１０８）。その後、パケット生成部２５１は、生成したパケット及びＯＳへの割り込みの指示をパケット送信部２５２へ送信する。
【００７０】
パケット送信部２５２は、ＯＳへの割り込みの指示とともに、エラー情報を通知するパケットをパケット生成部２５１から受信する。そして、パケット送信部２５２は、エラー情報を通知するパケットとともにＯＳに割り込み通知を、ホストブリッジ１２１を介してコア１１へ送信する（ステップＳ１０９）。
【００７１】
以上に説明したように、本実施例に係るＰＣＩｅ処理部は、エラー発生を通知するＭｅｓｓａｇｅを受信した場合、エラーが発生したＰＣＩデバイスからエラー情報を取得し、取得したエラー情報をＯＳへ送信してＯＳへの割り込みを行う。そして、ＰＣＩｅ処理部は、ハードウェアで実現される。すなわち、ハードウェアでエラー情報の探索及び取得が行われるため、ソフトウェアであるＯＳは、ＰＣＩデバイスにおけるエラー情報の検索及びエラー情報の取得の処理を実行しなくてすみ、ＯＳを動作させるコアの処理負荷を軽減することができる。すなわち、情報処理装置の処理能力の劣化を低減することができる。
【００７２】
さらに、本実施例に係るＰＣＩｅ処理部は、複数のエラーが連続で発生した場合、複数のエラーに関するエラー情報をまとめて一括でＯＳに送信するため、ＯＳへの割り込みの発生回数を低減することができ、よりＯＳを動作させるコアの処理負荷を低減することができる。
【実施例２】
【００７３】
図６は、実施例２に係るエラー処理部の詳細を表すブロック図である。本実施例に係るＰＣＩｅ処理部１２は、発生したエラーが重大なエラーの場合に直ちにＯＳへの通知を行うように、エラーが重大でない場合と処理を異ならせることが実施例１と異なる。以下の説明では、実施例１と同様の各部の機能については説明を省略する。
【００７４】
エラー判定部２１１は、ＰＣＩｅスイッチ２及びルートコンプレックス１２２を介して、エラーが発生したＰＣＩデバイス３からＭｅｓｓａｇｅを受信する。そして、エラー判定部２１１は、Ｍｅｓｓａｇｅのメッセージコードを確認し、発生したエラーのエラーレベル、すなわち、訂正可能エラー（ＣＥ：Correctable  Error）又は訂正不可エラー（ＵＥ：Uncorrectable  Error）のいずれであるかを判定する。
【００７５】
発生したエラーが訂正可能エラーの場合、ハードウェアが自動でエラー訂正を行い処理が継続できるため、すぐにＯＳに通知を行わなくても情報処理装置は継続使用可能である。そこで、エラー判定部２１１は、発生したエラーが訂正可能エラーの場合、ＢＤＦ情報抽出部２１２にＭｅｓｓａｇｅを送信し、エラー処理部１２３によるエラー情報の取得及びＯＳへのエラー情報の通知を実行させる。
【００７６】
これに対して、発生したエラーが訂正不可エラーの場合、データが訂正不能な状態であるため、すぐにＯＳに通知することが好ましい。そこで、エラー判定部２１１は、発生したエラーが訂正不可エラーの場合、Ｍｅｓｓａｇｅをパケット生成部２５１へ直接送信する。これにより、このＭｅｓｓａｇｅに対するエラー情報の検索、取得及び通知はエラー処理部１２３では行われない。このエラー判定部２１１が、「判定部」の一例にあたる。
【００７７】
パケット生成部２５１は、Ｍｅｓｓａｇｅの入力をエラー判定部２１１から受ける。そして、パケット生成部２５１は、Ｍｅｓｓａｇｅを送信するためのパケットを生成する。その後、パケット生成部２５１は、Ｍｅｓｓａｇｅを送信するためのパケットを、ＯＳへの割り込みの指示とともにパケット送信部２５２へ送信する。
【００７８】
パケット送信部２５２は、ＯＳへの割り込みの指示とともに、エラー情報を通知するパケットをパケット生成部２５１から受信する。そして、パケット送信部２５２は、Ｍｅｓｓａｇｅを通知するパケットとともにＯＳに割り込み通知を、ホストブリッジ１２１を介してコア１１へ送信する。
【００７９】
コア１１は、Ｍｅｓｓａｇｅを通知するパケットとともにＯＳへの割り込み通知をホストブリッジ１２１から受信する。そして、コア１１は、ＯＳに対して割り込みを行い、受信したＭｅｓｓａｇｅを用いたエラー情報の検索及び取得をＯＳに実行させる。
【００８０】
次に、図７を参照して、実施例２に係るエラー処理部１２３によるエラー情報の通知処理について説明する。図７は、実施例２に係るエラー処理部によるエラー情報の通知処理のフローチャートである。
【００８１】
エラー判定部２１１は、ＰＣＩｅスイッチ２及びルートコンプレックス１２２を介して、ＰＣＩデバイス３から送信されたＭｅｓｓａｇｅを受信する（ステップＳ２０１）。エラー判定部２１１は、発生したエラーが訂正不可エラーか否かを判定する（ステップＳ２０２）。
【００８２】
発生したエラーが訂正不可エラーの場合（ステップＳ２０２：肯定）、エラー判定部２１１は、Ｍｅｓｓａｇｅをパケット生成部２５１に送信する。そして、処理は、ステップＳ２０９へ進む。
【００８３】
これに対して、発生したエラーが訂正可能エラー、すなわち、訂正不可エラーでない場合（ステップＳ２０２：否定）、エラー判定部２１１は、ＭｅｓｓａｇｅをＢＤＦ情報抽出部２１２へ出力する。
【００８４】
ＢＤＦ情報抽出部２１２は、Ｍｅｓｓａｇｅの入力をエラー判定部２１１から受ける。そして、ＢＤＦ情報抽出部２１２は、取得したＭｅｓｓａｇｅのリクエストＩＤからＢＤＦを抽出し、エラーが発生したＰＣＩデバイス３を特定する（ステップＳ２０３）。次に、ＢＤＦ情報抽出部２１２は、抽出したＢＤＦをＡＥＲアドレス探索部２２１へ出力する。
【００８５】
ＡＥＲアドレス探索部２２１は、ＢＤＦの入力をＢＤＦ情報抽出部２１２から受ける。そして、ＡＥＲアドレス探索部２２１は、取得したＢＤＦを用いて、エラーが発生したＰＣＩデバイス３にアクセスし、エラーが発生したＰＣＩデバイス３におけるＡＥＲアドレスを探索して特定する（ステップＳ２０４）。ＡＥＲアドレス探索部２２１は、特定したＡＥＲアドレスをＢＤＦとともにＡＥＲアドレス通知部２２２へ出力する。ＡＥＲアドレス通知部２２２は、ＡＥＲアドレス及びＢＤＦの入力をＡＥＲアドレス探索部２２１から受ける。そして、ＡＥＲアドレス通知部２２２は、ＡＥＲアドレス及びＢＤＦをエラー情報取得部２３１へ出力するとともに、ＡＥＲアドレスの出力の通知を未処理メッセージ判定部２４１へ出力する。未処理メッセージ判定部２４１は、前回ＡＥＲアドレスの出力を通知してから今回の通知までに、エラー情報の送信の通知を割込判定部２４４から受信していなければ、待機命令を割込判定部２４４へ出力する。
【００８６】
エラー情報取得部２３１は、ＡＥＲアドレス及びＢＤＦの入力をＡＥＲアドレス通知部２２２から受ける。そして、エラー情報取得部２３１は、取得したＡＥＲアドレス及びＢＤＦを用いて、エラーが発生したＰＣＩデバイス３のＡＥＲレジスタ３２に格納されたエラー情報を収集する（ステップＳ２０５）。エラー情報取得部２３１は、収集したエラー情報をエラー情報送信部２３２へ出力する。
【００８７】
エラー情報送信部２３２は、エラー情報の入力をエラー情報取得部２３１から受ける。そして、エラー情報送信部２３２は、取得したエラー情報をエラー情報記憶部２４３に格納する（ステップＳ２０６）。また、エラー情報送信部２３２は、エラー情報送信を格納数カウント部２４２に通知し、格納数カウント部２４２のカウンタを１つインクリメントさせる。格納数カウント部２４２は、カウンタの値が閾値を超えた場合、エラー情報の送信命令を割込判定部２４４へ送信する。
【００８８】
割込判定部２４４は、エラー情報がエラー情報記憶部２４３に格納されると、待機命令の入力を未処理メッセージ判定部２４１から受けたか否かにより、未処理のＭｅｓｓａｇｅがあるか否かを判定する（ステップＳ２０７）。未処理のＭｅｓｓａｇｅが無い場合（ステップＳ２０７：否定）、割込処理部２４４は、ステップＳ２０９へ進む。
【００８９】
これに対して、未処理のＭｅｓｓａｇｅを受けた場合（ステップＳ２０７：肯定）、割込判定部２４４は、エラー情報の送信命令を格納数カウント部２４２から受けたか否かにより、エラー情報記憶部２４３に格納されたエラー情報の数が閾値以下か否かを判定する（ステップＳ２０８）。格納されたエラー情報の数が閾値以下の場合（ステップＳ２０８：肯定）、処理は、ステップＳ２０５へ戻る。
【００９０】
格納されたエラー情報の数が閾値を超える場合（ステップＳ２０８：否定）、割込判定部２４４は、エラー情報記憶部２４３からエラー情報を取得する。そして、割込判定部２４４は、割込命令及びエラー情報をパケット生成部２５１へ出力する。
【００９１】
パケット生成部２５１は、発生したエラーが訂正可能エラーの場合、割込命令及びエラー情報の入力を割込判定部２４４から受ける。また、パケット生成部２５１は、発生したエラーが訂正不可エラーの場合、Ｍｅｓｓａｇｅの入力をエラー判定部２１１から受ける。そして、パケット生成部２５１は、受信した情報を用いて、エラー情報を通知するパケットまたはＭｅｓｓａｇｅを通知するパケットを生成する（ステップＳ２０９）。その後、パケット生成部２５１は、生成したパケット及びＯＳへの割り込みの指示をパケット送信部２５２へ送信する。
【００９２】
パケット送信部２５２は、ＯＳへの割り込みの指示とともに、パケットをパケット生成部２５１から受信する。そして、パケット送信部２５２は、受信したパケットとともにＯＳに割り込み通知を、ホストブリッジ１２１を介してコア１１へ送信する（ステップＳ２１０）。
【００９３】
ここで、本実施例では、エラーレベルとして、訂正可能エラーと訂正不可エラーとで処理を分けたが、エラーレベルの分け方はこれに限らない。例えば、訂正不可エラー以外にも、重大なエラーと考えられるエラーを予め登録しておき、それらのエラーが発生した場合にも、エラー判定部２１１は、直接パケット生成部２５１へＭｅｓｓａｇｅを送るようにしてもよい。
【００９４】
以上に説明したように、本実施例に係るＰＣＩｅ処理部は、発生したエラーが重大なエラーの場合、ＯＳへエラー発生による割り込みを行う。これにより、ＯＳは、すぐにエラーの発生を把握でき、操作者への通知やエラー情報の収集を迅速に行うことができる。したがって、重大なエラー発生時における迅速な対応を実現することができる。
【実施例３】
【００９５】
次に、実施例３について説明する。本実施例に係るＰＣＩｅ処理部は、予め各ＰＣＩデバイスのＡＥＲアドレスを有することが実施例１と異なる。以下の説明では、実施例１と同様の各部の機能については説明を省略する。
【００９６】
まず、図８を参照して、本実施例に係るエラー処理部１２３の動作の概要について説明する。図８は、実施例３に係るエラー処理部の動作の概要を説明するための図である。
【００９７】
図８に示すように、本実施例に係るエラー処理部１２３は、ＡＥＲアドレステーブル２２３を予め有する。ＡＥＲアドレステーブル２２３は、接続された各ＰＣＩデバイス３の識別情報に対応させて、そのＰＣＩデバイス３におけるＡＥＲアドレスが登録されてたテーブルである。
【００９８】
ここで、ＡＥＲアドレステーブル２２３の作成について説明する。情報処理装置が実行する処理によって、その情報処理装置に用いられるＰＣＩデバイス３はある程度限定できる。そのため、管理者は、その情報処理装置が実行する処理によってどのようなＰＣＩデバイス３が実装されるかを予測することができる。そこで、例えば、情報処理装置の管理者は、実装されるであろうＰＣＩデバイス３を多めに予測する。そして、管理者は、ＲＯＭ（Read  Only  Memory）などの外付けストレージに予測したＰＣＩデバイス３の情報を格納しておく。その後、コア１１が、ＯＳやファームウェアを動作させることで、ＰＣＩデバイス３の初期化を行い、その際にＰＣＩデバイス３の識別情報を取得する。そして、コア１１が、取得したＰＣＩデバイス３の識別情報に関する情報を外付けストレージから取得し、エラー処理部１２３が有するＡＥＲアドレステーブル２２３にＢＤＦとともに登録する。
【００９９】
次に、エラー処理部１２３の処理の流れについて説明する。エラー処理部１２３は、ＰＣＩデバイス３においてエラーが発生すると、Ｍｅｓｓａｇｅをエラーが発生したＰＣＩデバイス３から受信する（ステップＳ３０１）。
【０１００】
次に、エラー処理部１２３は、受信したＭｅｓｓａｇｅから送信元のＰＣＩデバイス３のデバイス位置情報であるＢＤＦを取得する。次に、エラー処理部１２３は、ＢＤＦを用いてエラーが発生したＰＣＩデバイス３のＡＥＲアドレスを、ＡＥＲアドレステーブル２２３から取得する（ステップＳ３０２）。  
【０１０１】
次に、エラー処理部１２３は、ＡＥＲアドレスを含むエラー情報の送信要求をＡＥＲレジスタ３２に送信する（ステップＳ３０３）。そして、エラー処理部１２３は、ＡＥＲレジスタ３２に格納されていた発生したエラーに関するエラー情報を取得する（ステップＳ３０４）。その後、エラー処理部１２３は、取得したエラー情報をコア１１へ送信する（ステップＳ３０５）。ここで、エラー処理部１２３は、エラーが複数発生した場合には、各エラーのエラー情報を取得するまで待機し、各エラーのエラー情報をまとめてコア１１へ送信する。
【０１０２】
さらに、図９を参照して、エラー処理部１２３の詳細について説明する。図９は、実施例３に係るエラー処理部の詳細を表すブロック図である。
【０１０３】
ＡＥＲアドレス探索部２２１は、ＡＥＲアドレステーブル２２３を有する。ＡＥＲアドレス探索部２２１は、エラーが発生したＰＣＩデバイス３のＢＤＦをＢＤＦ情報抽出部２１２から取得する。そして、ＡＥＲアドレス探索部２２１は、取得したＢＤＦに対応するＰＣＩデバイス３の情報をＡＥＲアドレステーブル２２３から抽出し、そのＰＣＩデバイス３におけるＡＥＲアドレスを取得する。
【０１０４】
そして、ＡＥＲアドレス探索部２２１は、エラーが発生したＰＣＩデバイス３のＡＥＲアドレス及びＢＤＦをＡＥＲアドレス通知部２２２へ出力する。
【０１０５】
ここで、図１０を参照して、ＡＥＲアドレステーブル２２３に対するＡＥＲアドレスの登録及び取得についてさらに詳細に説明する。図１０は、ＡＥＲアドレステーブルに対するＡＥＲアドレスの登録及び取得の処理を説明するための図である。
【０１０６】
ＡＥＲアドレス探索部２２１は、より詳しくは、図１０に示すように、制御部２２４及びＲＡＭ（Random  Access  Memory）２２５を有する。そして、ＲＡＭ２２５には、ＡＥＲアドレステーブル２２３が格納される。
【０１０７】
ＡＥＲアドレス登録時、制御部２２４は、ＰＣＩデバイス３のＢＤＦとＡＥＲアドレスとの対応を表す情報をコア１１から受信する。ここで、図１０では、コア１１から制御部２２４へ直接情報が送信されるように記載したが、実際には、ホストブリッジ１２１を介して情報が送信される。そして、制御部２２４は、ライトイネーブル（Write  Enable）信号をＲＡＭ２２５に送信し、ＲＡＭ２２５を情報の書き込み可能な状態にする。その後、制御部２２４は、ＰＣＩデバイス３のＢＤＦとＡＥＲアドレスとの対応を表す情報をＲＡＭ２２５が保持するＡＥＲアドレステーブル２２３へ登録する。
【０１０８】
また、ＡＥＲアドレス読み出し時、制御部２２４は、リードイネーブル（Read  Enable）信号をＲＡＭ２２５に送信し、ＲＡＭ２２５を情報の読み出し可能な状態にする。その後、制御部２２４は、エラーが発生したＰＣＩデバイス３のＢＤＦに対応するＡＥＲアドレスをＡＥＲアドレステーブル２２３から読み出す。
【０１０９】
以上に説明したように、本実施例に係るＰＣＩｅ処理部は、接続された各ＰＣＩデバイスのＢＤＦとそのＰＣＩデバイスのＡＥＲアドレスとの対応を表すＡＥＲアドレステーブルを予め有し、そのＡＥＲアドレステーブルからＡＥＲアドレスを取得する。これにより、エラーが発生したＰＣＩデバイスにおいてＡＥＲアドレスを探索する処理を省くことができ、エラー情報収集のためのＰＣＩｅ処理部の処理を軽減することができる。したがって、情報処理装置の性能劣化をより低減することができる。
【符号の説明】
【０１１０】
１  ＣＰＵ
２  ＰＣＩｅスイッチ
３，３Ａ〜３Ｄ  ＰＣＩデバイス
１１  コア
１２  ＰＣＩｅ処理部
３１  ＰＣＩコンフィグレーション空間
３２  ＡＥＲレジスタ
１２１  ホストブリッジ
１２２  ルートコンプレックス
１２３  エラー処理部
２０１  パケット解析部
２０２  ＡＥＲ情報収集部
２０３  エラー情報収集部
２０４  エラー情報管理部
２０５  割込通知部
２１１  エラー判定部
２１２  ＢＤＦ情報抽出部
２２１  ＡＥＲアドレス探索部
２２２  ＡＥＲアドレス通知部
２２３  ＡＥＲアドレステーブル
２２４  制御部
２２５  ＲＡＭ
２３１  エラー情報取得部
２３２  エラー情報送信部
２４１  未処理メッセージ判定部
２４２  格納数カウント部
２４３  エラー情報記憶部
２４４  割込判定部
２５１  パケット生成部
２５２  パケット送信部
【図１】
2016186719.tif 000003
【図２】
2016186719.tif 000004
【図３】
2016186719.tif 000005
【図４】
2016186719.tif 000006
【図５】
2016186719.tif 000007
【図６】
2016186719.tif 000008
【図７】
2016186719.tif 000009
【図８】
2016186719.tif 000010
【図９】
2016186719.tif 000011
【図１０】
2016186719.tif 000012