(57)【特許請求の範囲】
【請求項１】
複数のプラットフォームと、当該複数のプラットフォームのそれぞれと通信可能に接続されかつ転送バスを用いて前記複数のプラットフォーム間での通信を中継する中継装置と、を備える情報処理システムであって、
前記中継装置は、
前記複数のプラットフォームに共通に１つ設けられ、かつ、前記プラットフォームが通信可能な否かを示す通信ステータスを記憶する記憶領域を前記プラットフォーム毎に有するドライバステータスレジスタ、を備え、
前記プラットフォームは、
当該プラットフォーム自身の前記記憶領域に記憶される前記通信ステータスを更新し、かつ、前記ドライバステータスレジスタが有する前記記憶領域のうち、他の前記プラットフォームの前記記憶領域に記憶される前記通信ステータスを参照して、前記複数のプラットフォームのうち通信可能な前記プラットフォームと通信を行う通信ドライバ、
を備える情報処理システム。
【請求項２】
前記転送バスは、ＰＣＩｅ（Peripheral  Component  Interconnect  Express）のバスであって、
前記中継装置は、
前記ドライバステータスレジスタとは異なるレジスタでありかつ前記複数のプラットフォームの前記通信ステータスを記憶するＰＣＩｅステータスレジスタと、
前記中継装置の物理層による前記プラットフォームとの通信状態の変化を検出し、その検出結果に基づいて、前記ＰＣＩｅステータスレジスタに記憶される前記通信ステータスを更新する制御部と、を備え、
前記通信ドライバは、前記ＰＣＩｅステータスレジスタおよび前記記憶領域に記憶される前記通信ステータスを参照して、前記プラットフォームと通信を行う請求項１に記載の情報処理システム。
【請求項３】
前記通信ドライバは、当該通信ドライバ自身がアンロードされた際に、前記通信ステータスを、前記プラットフォームが通信不可であること示す値に更新する請求項１または２に記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システムに関する。
【背景技術】
【０００２】
複数のプラットフォームと、当該複数のプラットフォームのそれぞれと通信可能に接続されかつＰＣＩｅ（Peripheral  Component  Interconnect  Express）バス等の転送バスを用いて当該複数のプラットフォーム間での通信を中継する中継装置と、を備える情報処理システムが開発されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１８−５６５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、上述の情報処理システムにおいて、複数のプラットフォーム間において通信が行われている際に、いずれかのプラットフォームにおいてカーネルパニック等による突然の再起動によって通信エラーが発生した場合、通信相手の通信の状態を取得することができず、通信相手が存在するものとして、プラットフォーム間での通信が開始されてしまうため、通信エラーが発生していない他のプラットフォームにおいても次々と通信エラーが発生する場合がある。
【０００５】
１つの側面では、本発明は、いずれかのプラットフォームにおいて突然の再起動が行われた場合に、突然の再起動が行われたプラットフォームに対して誤ってデータ通信が行われることを防止し、他のプラットフォームにおける通信エラーの発生を抑制することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の第１態様にかかる情報処理システムは、複数のプラットフォームと、当該複数のプラットフォームのそれぞれと通信可能に接続されかつ転送バスを用いて前記複数のプラットフォーム間での通信を中継する中継装置と、を備える。前記中継装置は、前記複数のプラットフォームに共通に１つ設けられ、かつ、前記プラットフォームが通信可能な否かを示す通信ステータスを記憶する記憶領域を前記プラットフォーム毎に有するドライバステータスレジスタ、を備える。前記プラットフォームは、当該プラットフォーム自身の前記記憶領域に記憶される前記通信ステータスを更新し、かつ、前記ドライバステータスレジスタが有する前記記憶領域のうち、他の前記プラットフォームの前記記憶領域に記憶される前記通信ステータスを参照して、前記複数のプラットフォームのうち通信可能な前記プラットフォームと通信を行う通信ドライバを備える。
【発明の効果】
【０００７】
本発明の上記第１態様によれば、いずれかのプラットフォームにおいて突然の再起動が行われた場合に、突然の再起動が行われたプラットフォームに対して誤ってデータ通信が行われることを防止し、転送バスのエラーの発生を抑制することができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、本実施形態にかかる情報処理システムの全体構成の一例を示す図である。
【図２】図２は、本実施形態にかかる情報処理システムにおけるプラットフォームのソフトウェア構成の一例を示す図である。
【図３】図３は、本実施形態にかかる情報処理システムにおけるＰＣＩｅブリッジコントローラのハードウェア構成の一例を模式的に示す図である。
【図４】図４は、本実施形態の一例としてのＰＣＩｅのレイヤ構成を示す図である。
【図５】図５は、本実施形態にかかる情報処理システムにおけるプロセッサからの他のプロセッサの見え方を例示する図である。
【図６】図６は、本実施形態にかかる情報処理システムにおけるプロセッサからの他のプロセッサの見え方を例示する図である。
【図７】図７は、本実施形態にかかる情報処理システムにおけるＰＣＩｅブリッジコントローラを介したプラットフォーム間でのデータ転送方法の一例を説明するための図である。
【図８】図８は、本実施形態にかかる情報処理システムにおけるＰＣＩｅブリッジコントローラを介したプラットフォーム間のデータ転送方法の一例を説明するための図である。
【図９】図９は、本実施形態にかかる情報処理システムにおけるＰＣＩｅブリッジコントローラが有するレジスタの構成の一例を説明するための図である。
【図１０】図１０は、本実施形態にかかる情報処理システムにおけるＰＣＩｅブリッジコントローラのレジスタが有する共通レジスタの構成の一例を示す図である。
【図１１】図１１は、本実施形態にかかる情報処理システムにおける複数のプラットフォーム間における通信処理の流れの一例を示すシーケンス図である。
【発明を実施するための形態】
【０００９】
以下、添付の図面を用いて、本実施形態にかかる情報処理システムの一例について説明する。
【００１０】
図１は、本実施形態にかかる情報処理システムの全体構成の一例を示す図である。図１に示すように、本実施形態にかかる情報処理システム１は、複数のプラットフォーム２−１〜２−８と、ＰＣＩｅブリッジコントローラ３と、を備える。複数のプラットフォーム２−１〜２−８は、それぞれＰＣＩｅブリッジコントローラ３に接続されている。
【００１１】
以下の説明では、複数のプラットフォーム２−１〜２−８を区別する必要がなく、任意のプラットフォームを示す場合には、プラットフォーム２と記載する。また、ここでは、情報処理システム１が、８つのプラットフォーム２−１〜２−８を有する例について説明するが、複数のプラットフォーム２を有するものであれば、これに限定するものではない。
【００１２】
プラットフォーム２−１は、プロセッサ２１−１を備える。同様に、プラットフォーム２−２〜２−８も、プロセッサ２１−２〜２１−８をそれぞれ備える。
【００１３】
プロセッサ２１−１〜２１−８は、それぞれ違うメーカ（ベンダ）から提供されても良い。例えば、プロセッサ２１−１，２１−２，２１−３，２１−４，２１−５，２１−６，２１−７，２１−８は、それぞれ、Ａ社，Ｂ社，Ｃ社，Ｄ社，Ｅ社，Ｆ社，Ｇ社，Ｈ社が提供するものであるとする。
【００１４】
また、以下、プロセッサ２１−１，２１−２，２１−３，２１−４，２１−５，２１−６，２１−７，２１−８を、それぞれプロセッサＡ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆ，Ｇ，Ｈという場合がある。また、ＰＣＩｅブリッジコントローラ３に搭載されているＥＰに対して、それぞれ異なるプラットフォームを接続しても良い。さらに、複数のＥＰを１つのプラットフォーム２に接続し、プラットフォーム２側が複数のＲＣを用いてＰＣＩｅブリッジコントローラ３と通信しても良い。
【００１５】
以下の説明では、プロセッサを示す符号としては、複数のプロセッサのうち１つを特定する必要があるときには符号２１−１〜２１−８もしくは符号Ａ〜Ｈ等を用いるが、任意のプロセッサを指すときには符号２１を用いる。
【００１６】
プラットフォーム２−１〜２−８は、ＡＩ推論処理や画像処理等の演算処理を行なうコンピュータ環境であり、プロセッサ２１や、図７に示すストレージ２３およびメモリ（物理メモリ）２２を備える。
【００１７】
プラットフォーム２においては、プロセッサ２１がメモリ２２やストレージ２３に格納されたプログラムを実行することで各種機能を実現する。
【００１８】
ストレージ２３は、ハードディスクドライブ（ＨＤＤ：Hard  Disk  Drive）、ＳＳＤ（Solid  State  Drive）、ストレージクラスメモリ（ＳＣＭ：Storage  Class  Memory）等の記憶装置であって、種々のデータを格納するものである。
【００１９】
メモリ２２は、ＲＯＭ（Read  Only  Memory）およびＲＡＭ（Random  Access  Memory）を含む記憶メモリである。メモリ２２のＲＯＭには、各種ソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ２２上のソフトウェアプログラムは、プロセッサ２１に適宜読み込まれて実行される。また、メモリ２２のＲＡＭは、一次記憶メモリあるいはワーキングメモリとして利用される。
【００２０】
プロセッサ２１は、プラットフォーム２全体を制御する。プロセッサ２１は、マルチプロセッサであってもよい。プロセッサ２１は、例えば、ＣＰＵ（Central  Processing  Unit）、ＭＰＵ（Micro  Processing  Unit）、ＤＳＰ（Digital  Signal  Processor）、ＡＳＩＣ（Application  Specific  Integrated  Circuit）、ＰＬＤ（Programmable  Logic  Device）、ＦＰＧＡ（Field  Programmable  Gate  Array）のいずれか一つであってもよい。また、プロセッサ２１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤ、ＦＰＧＡのうちの２種類以上の要素の組み合わせであってもよい。
【００２１】
図２は、本実施形態にかかる情報処理システムにおけるプラットフォームのソフトウェア構成の一例を示す図である。図２では、プラットフォーム２−１〜２−３のソフトウェア構成のみを図示しているが、他のプラットフォーム２−４〜２−８も同様のソフトウェア構成を有するものとする。
【００２２】
図２に示すように、プラットフォーム２−１は、Windows（登録商標）をＯＳとし、このＯＳ上において各種プログラムが実行される。プラットフォーム２−２，２−３は、それぞれLinux（登録商標）をＯＳとし、このＯＳ上において分散処理プログラム（分散処理Ａ，Ｂ）が実行される。
【００２３】
各プラットフォーム２には、ブリッジドライバ２０が備えられており、プラットフォーム２は、このブリッジドライバ２０を介してＰＣＩｅブリッジコントローラ３および他のプラットフォーム２との間で通信を行なう。ブリッジドライバ２０による通信方法については後述する。
【００２４】
各プラットフォーム２においては、プロセッサ２１およびメモリ（物理メモリ）２２（（図７等参照）を備え、プロセッサ２１がメモリ２２に格納されたＯＳや各種プログラム，ドライバ等を実行することでそれぞれの機能を実現する。
【００２５】
各プラットフォーム２に備えられるプロセッサ２１は、互いに違うベンダによって提供されるものであってもよい。図１に示す例においては、少なくとも一部のプラットフォーム２（例えば、プラットフォーム２−７）に複数のＲＣを有するプラットフォーム（例えば、Intel社のx86プロセッサ）が用いられてもよい。
【００２６】
また、各プラットフォーム２は、それぞれ他のドライバ構成に影響を与えないように独立動作可能に構成されている。
【００２７】
プラットフォーム２において、メモリ２２の記憶領域の一部は、図７を用いて後述する如く、プラットフォーム２間（プロセッサ２１間）において転送されるデータが一時的に格納される通信バッファ２２１として用いられる。
【００２８】
ＰＣＩｅブリッジコントローラ３は、複数のプラットフォーム２−１〜２−８間におけるデータ等の通信を実現する。
【００２９】
図３は、本実施形態にかかる情報処理システムにおけるＰＣＩｅブリッジコントローラのハードウェア構成の一例を模式的に示す図である。
【００３０】
図３に示すように、ＰＣＩｅブリッジコントローラ３は、複数のプラットフォーム１０のそれぞれと通信可能に接続されＰＣＩｅバス（転送バスの一例）を用いて当該複数のプラットフォーム１０間での通信を中継する中継装置の一例である。本実施形態では、ＰＣＩｅブリッジコントローラ３は、８チャンネルのＥＰを１チップ内に有する。ＰＣＩｅブリッジコントローラ３は、図３に示すように、ＣＰＵ３１、メモリ３２、インターコネクト３３、および複数のスロット３４−１〜３４−８を備える。
【００３１】
スロット３４−１〜３４−８には、それぞれＰＣＩｅの規格を満たすように構成されたデバイスが接続される。本実施形態にかかる情報処理システム１では、スロット３４−１〜３４−８のそれぞれにプラットフォーム２が接続される。
【００３２】
以下の説明では、スロットを示す符号としては、複数のスロットのうち１つを特定する必要がある場合には符号３４−１〜３４−８を用いるが、任意のスロットを示す場合には符号３４を用いる。
【００３３】
また、一つのスロット３４に対して一つのプラットフォーム２が接続されてもよく、複数のスロット３４に対して一つのプラットフォーム２が接続されてもよく、種々変形して実施することができる。
【００３４】
複数のスロット３４に対して一つのプラットフォーム２をアサインすることで、このプラットフォーム２に広い通信帯域を用いた通信を行なわせることができる。
【００３５】
各スロット３４は、内部バス（Internal  Bus）を介してインターコネクト３３にそれぞれ接続されている。また、インターコネクト３３には、ＣＰＵ３１およびメモリ３２が接続されている。これにより、各スロット３４と、ＣＰＵ３１と、メモリ３２と、は、インターコネクト３３を介して相互に通信可能に接続されている。
【００３６】
メモリ３２は、例えば、ＲＯＭおよびＲＡＭを含む記憶メモリ（物理メモリ）である。メモリ３２のＲＯＭには、データ通信制御に係るソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ３２上のソフトウェアプログラムは、ＣＰＵ３１に適宜読み込まれて実行される。また、メモリ３２のＲＡＭは、一次記憶メモリあるいはワーキングメモリとして利用される。
【００３７】
さらに、ＰＣＩｅブリッジコントローラ３においては、各スロット３４に対応させてレジスタ３５（図７参照）が備えられ、このレジスタ３５のＢＡＲ（Base  Address  Register）空間には、スロット毎に記憶領域が備えられる。すなわち、レジスタ３５のＢＡＲ空間にはスロット＃０〜＃７のそれぞれに対応する記憶領域が設けられている。
【００３８】
ＰＣＩｅブリッジコントローラ３においては、後述の如く、ＢＡＲ空間のスロット３４毎の記憶領域を用いてプラットフォーム２間のデータ転送を行なう。
【００３９】
ＣＰＵ３１は、ＰＣＩｅブリッジコントローラ３全体を制御する。ＣＰＵ３１は、マルチプロセッサであってもよい。ＣＰＵ３１に代えて、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤ、ＦＰＧＡのいずれか一つが用いられてもよい。また、ＣＰＵ３１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤ、ＦＰＧＡのうちの２種類以上の要素の組み合わせであってもよい。
【００４０】
そして、ＣＰＵ３１がメモリ３２に格納されたソフトウェアプログラムを実行することで、ＰＣＩｅブリッジコントローラ３におけるプラットフォーム２間（プロセッサ２１間）のデータ転送を実現する。
【００４１】
ＰＣＩｅブリッジコントローラ３は、プラットフォーム２間のデータ転送を高速化するためにＰＣＩｅを用い、図１に示すように、各プラットフォーム２に備えられるプロセッサをそれぞれＲＣとして動作させ、デバイスとして動作するＥＰ間でデータ転送を実現する。
【００４２】
具体的には、情報処理システム１においては、各プラットフォーム２のプロセッサを、データ転送インタフェースとしてＰＣＩｅのＲＣとして動作させる。また、各プラットフォーム２（プロセッサ２１）に対して、ＰＣＩｅブリッジコントローラ３を、すなわち、各プラットフォーム２が接続されているスロット３４をＥＰとして動作させる。
【００４３】
ＰＣＩｅブリッジコントローラ３をプロセッサ２１に対してＥＰとして接続する手法としては、既知の種々の手法を用いて実現することができる。
【００４４】
例えば、ＰＣＩｅブリッジコントローラ３は、プラットフォーム２との接続時に、ＥＰとして機能することを示す信号を当該プロセッサ２１に通知することで、ＥＰとしてプロセッサ２１と接続する。
【００４５】
ＰＣＩｅブリッジコントローラ３においては、ＥＰｔｏＥＰ（End  Point  to  End  Point）でデータをトンネリングさせて、複数のＲＣにデータを転送する。プラットフォーム２間の通信は、ＰＣＩｅのトランザクションが発生したときに論理的に接続され、１つのプロセッサ２１にデータ転送が集中しないときは、それぞれのプラットフォーム２間で並行してデータ転送できる。
【００４６】
図４は、本実施形態の一例としてのＰＣＩｅのレイヤ構成を示す図である。図４では、プラットフォーム２−１のプロセッサＡとプラットフォーム２−２のプロセッサＢとの間で通信を行なう例を示すが、他のプラットフォーム２のプロセッサ２１間においても同様にして通信を行うものとする。
【００４７】
送信元のプラットフォーム２−１においては、ＲＣであるプロセッサＡにおいて生成されたデータが、ソフトウェア、トランザクション層、データリンク層、および物理層（ＰＨＹ）を、順次、転送され、物理層においてＰＣＩｅブリッジコントローラ３の物理層に転送される。
【００４８】
ＰＣＩｅブリッジコントローラ３においては、物理層、データリンク層、トランザクション層、およびソフトウェアを順次、転送され、送信先のプラットフォーム２のＲＣに対応するＥＰにトンネリングによりデータが転送される。
【００４９】
すなわち、ＰＣＩｅブリッジコントローラ３においては、ＥＰ間でデータをトンネリングさせること（換言すれば、一のＥＰが一のプラットフォーム２から受信したデータを、他のＥＰにトンネリングさせること）で、一のプラットフォーム２に含まれるＲＣから他のプラットフォーム２に含まれるＲＣにデータが転送される。
【００５０】
送信先のプラットフォーム２−２においては、ＰＣＩｅブリッジコントローラ３から転送されたデータが、物理層（ＰＨＹ）、データリンク層、トランザクション層、およびソフトウェアを、順次、転送され、送信先のプラットフォーム２−２のプロセッサＢに転送される。
【００５１】
情報処理システム１において、プロセッサ２１間（プラットフォーム２間）の通信は、ＰＣＩｅのトランザクションが発生したときに論理的に接続される。
【００５２】
ＰＣＩｅブリッジコントローラ３が有する８スロットのうちの一つに接続された特定のプロセッサ２１に対して複数の他のプロセッサ２１からのデータ転送が集中しないときは、異なる任意の複数組のそれぞれのプロセッサ２１間で並行してデータ転送してもよい。
【００５３】
例えば、プラットフォーム２−１のプロセッサＡに対して、プラットフォーム２−２のプロセッサＢおよびプラットフォーム２−３のプロセッサＣのそれぞれが通信しようとする場合には、ＰＣＩｅブリッジコントローラ３は、プロセッサＢ，Ｃの通信をシリアルに処理する。
【００５４】
ただし、プロセッサＡ−プロセッサＢ，プロセッサＣ−プロセッサＤ，プロセッサＥ−プロセッサＦのように、それぞれが異なるプロセッサ同士で通信し、特定のプロセッサに通信が集中しない場合には、ＰＣＩｅブリッジコントローラ３は、各プロセッサ２１間通信を並行して処理する。
【００５５】
図５は、本実施形態にかかる情報処理システムにおけるプロセッサからの他のプロセッサの見え方を例示する図である。また、図６は、本実施形態にかかる情報処理システムにおけるプロセッサからの他のプロセッサの見え方を例示する図である。
【００５６】
各プロセッサ２１間で通信が行なわれている状態においても、各プロセッサ２１上のＯＳ（例えばWindowsのデバイスマネージャ）からは、ＰＣＩｅブリッジコントローラ３しか見えず、接続先の他のプロセッサ２１を直接管理する必要がない。すなわち、ＰＣＩｅブリッジコントローラ３のデバイスドライバでＰＣＩｅブリッジコントローラ３の先に接続されたプロセッサ２１を管理すれば良い。
【００５７】
そのため、送信元、受信先それぞれのプロセッサ２１を動作させるためのデバイスドライバを準備する必要がなく、ＰＣＩｅブリッジコントローラ３のドライバでＰＣＩｅブリッジコントローラ３に対して通信処理を行なうだけでプロセッサ２１間の通信を行なうことができる。
【００５８】
図７は、本実施形態にかかる情報処理システムにおけるＰＣＩｅブリッジコントローラを介したプラットフォーム間でのデータ転送方法の一例を説明するための図である。図７では、スロット＃０に接続されたプラットフォーム２−１からスロット＃４に接続されたプラットフォーム２−５にデータを転送する場合について説明するが、他のプラットフォーム２間におけるデータ転送も同様に行うものとする。
【００５９】
データの送信元のプラットフォーム２−１において、ソフトウェア等によって送信されるデータ（以下、送信データという場合がある）が、プラットフォーム２−１に備えられるストレージ２３から通信バッファ２２１にロードされる（符号Ｐ１参照）。
【００６０】
ソフトウェアによって、通信バッファ２２１における送信データが格納された領域の位置情報（例えば、Offset/Length）と、送信先の情報（例えば、Slot/Offset）と、が指定され、ブリッジドライバ２０に受け渡される（符号Ｐ２参照）。
【００６１】
送信元ＥＰにおいて、ブリッジドライバ２０は、ＢＡＲ空間のスロット＃４のアドレスに送信データを渡す（符号Ｐ３）。これにより、ＰＣＩｅブリッジコントローラ３において、ＥＰｔｏＥＰにより送信元ポートから送信先のプラットフォーム２に対応するスロット（送信先スロット）に送信データが送信される（符号Ｐ４参照）。送信先スロットにおいては、レジスタ３５のＢＡＲ空間のスロット＃４に対応する記憶領域に送信データが格納される。
【００６２】
送信先スロットにおいて、例えば、ブリッジドライバ２０が、レジスタ３５のＢＡＲ空間のスロット＃４に対応する記憶領域から送信データを通信バッファ２２１に転送し、送信データは、この通信バッファ２２１においてoffsetによって特定される所定の領域に格納される（符号Ｐ５参照）。
【００６３】
送信先プラットフォーム２において、例えば、プログラムが、通信バッファ２２１に格納された送信データを読み出して、メモリ（ローカルメモリ）２２やストレージ２３に移動させる（符号Ｐ６，Ｐ７参照）。
【００６４】
以上のようにして、送信元のプラットフォーム２−１から送信先のプラットフォーム２−５に送信データが転送される。
【００６５】
図８は、本実施形態にかかる情報処理システムにおけるＰＣＩｅブリッジコントローラを介したプラットフォーム間のデータ転送方法の一例を説明するための図である。図８には、スロット＃０に接続されたプラットフォーム２−１からスロット＃４に接続されたプラットフォーム２−５にデータを転送する場合を示すが、他のプラットフォーム２間においても同様にしてデータを転送するものとする。
【００６６】
送信元のプラットフォーム２−１は、ソフトウェア等によって送信される送信データを、プラットフォーム２−１に備えられるストレージ２３等からプラットフォーム２−１のメモリ領域３６に格納する（ステップＳ７０１）。メモリ領域３６は、転送される送信データが一時的に格納される通信バッファの一部であっても良い。メモリ領域３６は、プラットフォーム２のそれぞれに、メモリ２２等と同じ大きさで設けられた領域である。メモリ領域３６は、スロット３０５の数に応じて分割されている。メモリ領域３６の分割された記憶領域は、いずれかのスロット３０５に対応付けられている。例えば、メモリ領域３６内のスロット♯０で示す記憶領域は、スロット♯０に接続されたプラットフォーム２−１に対応付けられ、メモリ領域３６内にスロット♯４で示す記憶領域は、スロット♯４に接続されたプラットフォーム２−５に対応付けられている。プラットフォーム２−１は、メモリ領域３６のうち、送信先のスロット３０５に割り当てられた領域（ここでは、スロット♯４）に送信データを格納する。
【００６７】
ルートコンプレックスとしての機能を有する送信元のプラットフォーム２−１は、プラットフォーム２のメモリ領域３６の記憶領域に基づいて、送信先のスロット３０５を示すスロット情報と、送信先のメモリ領域３６における分割領域内におけるアドレスを示すアドレス情報と、を取得または生成する（ステップＳ７０２）。
【００６８】
送信元のプラットフォーム２−１は、スロット情報と、アドレス情報と、送信データと、を含む転送データを複数のエンドポイントの機能を有するＰＣＩｅブリッジコントローラ３に渡す（ステップＳ７０３）。これにより、ＰＣＩｅブリッジコントローラ３は、スロット情報に基づいてＥＰｔｏＥＰにより送信元のスロット３０５と送信先のスロット３０５とを接続することにより、転送データを送信先のプラットフォーム２−４に転送する（ステップＳ７０４）。送信先のプラットフォーム２は、スロット情報およびアドレス情報に基づいて、送信先のプラットフォーム２の通信バッファ２２１に対応する記憶領域内のアドレス情報が示す領域に送信データ（または転送データ）を格納する（ステップＳ７０５）。
【００６９】
送信先のプラットフォーム２−５において、プログラムが、通信バッファ２２１に格納された送信データを読み出して、メモリ（ローカルメモリ）２２の他の領域やストレージ２３に移動させる（ステップＳ７０６、ステップＳ７０７）。
【００７０】
以上のようにして、送信元のプラットフォーム２−１から送信先のプラットフォーム２−５にデータ（転送データ）が転送される。
【００７１】
ところで、複数のプラットフォーム２間において通信が行われている際に、いずれかのプラットフォーム２においてカーネルパニック等による突然の再起動が行われて通信エラーが発生した場合、他のプラットフォーム２は、当該通信エラーが発生したプラットフォーム２の通信の状態を取得することができなくなる。そのため、他のプラットフォーム２は、通信相手のプラットフォーム２（通信エラーが発生したプラットフォーム２）が通信可能であると判断して、当該通信相手のプラットフォーム２との通信を開始するため、当該他のプラットフォーム２においても通信エラーが発生する場合がある。
【００７２】
そこで、本実施形態では、ＰＣＩｅブリッジコントローラ３が、各プラットフォーム２が通信可能な否かを示す通信ステータスを記憶するレジスタを備える。そして、プラットフォーム２は、ＰＣＩｅブリッジコントローラ３が備えるレジスタに記憶される通信ステータスを参照して、他のプラットフォーム２と通信を行う。
【００７３】
これにより、カーネルパニック等による突然の再起動が行われて通信エラーが発生しているプラットフォームとの通信が行われることを防止できる。その結果、情報処理システム１内のいずれかのプラットフォーム２における通信エラーの発生によって、他のプラットフォーム２においても通信エラーが発生することを抑制できる。
【００７４】
図９は、本実施形態にかかる情報処理システムにおけるＰＣＩｅブリッジコントローラが有するレジスタの構成の一例を説明するための図である。図９には、ＰＣＩｅブリッジコントローラ３が有するレジスタ３５のＢＡＲ空間のスロット＃０に対応する記憶領域（以下、共通レジスタと言う）の構成の一例を示すが、他のスロット＃１〜＃７のそれぞれに対応する共通レジスタも同様の構成を有する。
【００７５】
図９に示すように、ＰＣＩｅブリッジコントローラ３が有するレジスタ３５の各スロット３４のＢＡＲ空間には、複数のスロット＃０〜＃８のレジスタ３５間において共通するＢＡＲ空間（以下、共通エリアと言う）９００が含まれる。
【００７６】
そして、共通エリア９００は、図９に示すように、ドライバステータスレジスタ９０１を有する。ここで、ドライバステータスレジスタ９０１は、スロット３４（言い換えると、プラットフォーム２）毎に設けられる記憶領域である共通レジスタ９０２−０〜９０２−７を有する。以下、共通レジスタを示す符号としては、複数の共通レジスタのうち１つを特定する必要がある場合には符号９０２−０〜９０２−７を用いるが、任意の共通レジスタを示す場合には符号９０２を用いる。
【００７７】
ここで、共通レジスタ９０２は、通信ステータスを記憶する記憶領域である。また、ここで、通信ステータスは、共通レジスタ９０２に対応するプラットフォーム２が通信可能か否かを示す。
【００７８】
本実施形態では、図９に示すように、ドライバステータスレジスタ９０１が有する各スロット３４の共通レジスタ９０２は、スロット３４毎に、３２ビットのレジスタが割り当てられている。そして、図９に示すように、共通レジスタ９０２が有するビットのうち、２４番目のビットが、当該共通レジスタ９０２が割り当てられたスロット３４（プラットフォーム２）の通信ステータスを表す。
【００７９】
具体的には、共通レジスタ９０２に対応するプラットフォーム２が通信不可である場合、２４番目のビット（通信ステータス）は、０となる。また、共通レジスタ９０２に対応するプラットフォーム２が通信可能である場合、２４番目のビット（通信ステータス）は、１となる。
【００８０】
プラットフォーム２のブリッジドライバ２０（通信ドライバの一例）は、共通レジスタ９０２−０〜９０２−７のうち、プラットフォーム２自身に対応する共通レジスタ９０２に記憶される通信ステータス（本実施形態では、共通レジスタ９０２が有するビットのうち２４番目のビット）を更新する。
【００８１】
本実施形態では、プラットフォーム２のブリッジドライバ２０は、当該ブリッジドライバ２０自身がアンロードされた際に、通信ステータスを更新する。具体的には、プラットフォーム２のブリッジドライバ２０は、当該ブリッジドライバ２０自身がロードされている状態（ブリッジドライバ２０自身が有効な状態）から、当該ブリッジドライバ２０自身がアンロードされた状態（ブリッジドライバ２０自身が無効な状態）に遷移する際に、プラットフォーム２自身に対応する共通レジスタ９０２に記憶される通信ステータスを０に更新する。
【００８２】
また、本実施形態では、プラットフォーム２のブリッジドライバ２０は、当該ブリッジドライバ２０自身がロードされた際に、通信ステータスを更新する。具体的には、プラットフォーム２のブリッジドライバ２０は、当該ブリッジドライバ２０自身がアンロードされている状態（ブリッジドライバ２０自身が無効な状態）から、当該ブリッジドライバ２０自身がロードされた状態（ブリッジドライバ２０自身が有効な状態）に遷移する際に、プラットフォーム２自身に対応する共通レジスタ９０２に記憶される通信ステータスを１に更新する。
【００８３】
また、プラットフォーム２のブリッジドライバ２０は、共通レジスタ９０２−０〜９０２−７に記憶される通信ステータス（本実施形態では、共通レジスタ９０２−０〜９０２−７のそれぞれの２４番目のビット）を参照して、プラットフォーム２−１〜２−７のうち、通信可能なプラットフォーム２と通信を行う。一方、プラットフォーム２のブリッジドライバ２０は、共通レジスタ９０２−０〜９０２−７に記憶される通信ステータス（本実施形態では、共通レジスタ９０２−０〜９０２−７のそれぞれの２４番目のビット）を参照して、プラットフォーム２−１〜２−７のうち、通信不可のプラットフォーム２とは通信を行わない。
【００８４】
これにより、カーネルパニック等による突然の再起動が行われて通信エラーが発生しているプラットフォーム２との通信が行われることを防止できる。その結果、情報処理システム１内のいずれかのプラットフォーム２における通信エラーの発生によって、他のプラットフォーム２においても通信エラーが発生することを抑制できる。また、ブリッジドライバ２０は、後述するＰＣＩｅステータスレジスタ９０３に記憶される通信ステータスに基づいて、プラットフォーム２の再起動（例えば、カーネルパニック等による突然の再起動）を検出した場合、ドライバステータスレジスタ９０１に記憶される通信ステータスのうち、当該再起動を検出したプラットフォーム２の通信ステータス（または、再起動を検出したプラットフォーム２の共通レジスタ９０２全体）をクリアしても良い。そして、ブリッジドライバ２０は、通信エラーが発生していない通常動作時等において、ＰＣＩｅブリッジコントローラ３のＣＰＵ３１によるドライバステータスレジスタ９０１の更新を行わせないようにしても良い。
【００８５】
また、図９に示すように、共通レジスタ９０２が有するビットのうち、０番目〜１５番目のビットは、当該共通レジスタ９０２に対応するスロット３４（プラットフォーム２）が通信可能なプラットフォーム２を示すビットである。
【００８６】
例えば、共通レジスタ９０２−０の１番目のビットは、スロット＃１に接続されるプラットフォーム２−２と通信可能か否かを示すビットであり、０の場合には通信不可であることを示し、１の場合には通信可能であることを示す。また、共通レジスタ９０２−０の２番目のビットは、スロット＃２に接続されるプラットフォーム２−３と通信可能か否かを示すビットであり、０の場合には通信不可であることを示し、１の場合には通信可能であることを示す。共通レジスタ９０２−０の３番目から１５番目のビットも同様に、当該ビットの番号と一致するスロット３４に接続されるプラットフォーム２と通信可能か否かを示す。
【００８７】
また、共通エリア９００は、図９に示すように、ＰＣＩｅステータスレジスタ９０３を有する。ここで、ＰＣＩｅステータスレジスタ９０３は、ドライバステータスレジスタ９０１とは異なるレジスタでありかつ複数のプラットフォーム２−１〜２−８の通信ステータスを記憶するレジスタである。
【００８８】
ＰＣＩｅブリッジコントローラ３のＣＰＵ３１（制御部の一例）により実行されるファームウェア（以下、ブリッジファームウェアと言う）は、ＰＣＩｅブリッジコントローラ３の物理層によるプラットフォーム２との通信状態（以下、リンク状態と言う）の変化を検出する。そして、ブリッジファームウェアは、リンク状態の変化の検出結果に基づいて、ＰＣＩｅステータスレジスタ９０３に記憶される通信ステータスを更新する。
【００８９】
本実施形態では、ブリッジファームウェアは、定期的に、リンク状態の変化を検出する。例えば、ブリッジファームウェアは、ＰＣＩｅブリッジコントローラ３の物理層から割り込みが発行される際に、リンク状態が、プラットフォーム２との通信状態が通信可能な状態（以下、コネクト状態ＣＴＤと言う）から通信不可の状態（以下、ノットコネクト状態ＮＯＣと言う）に変化したのか、若しくは、プラットフォーム２との通信状態がノットコネクト状態ＮＯＣからコネクト状態ＣＴＤに変化したのかを検出する。
【００９０】
そして、ブリッジファームウェアは、リンク状態が、コネクト状態ＣＴＤからノットコネクト状態ＮＯＣに変化したことを検出した場合、ＰＣＩｅステータスレジスタ９０３に記憶される通信ステータスのうち、リンク状態がノットコネクト状態ＮＯＣに変化したプラットフォーム２の通信ステータスを、通信不可を示す通信ステータスに更新する。また、ブリッジファームウェアは、リンク状態が、ノットコネクト状態ＮＯＣからコネクト状態ＣＴＤに変化したことを検出した場合、ＰＣＩｅステータスレジスタ９０３に記憶される通信ステータスのうち、リンク状態がコネクト状態ＣＴＤに変化したプラットフォーム２の通信ステータスを、通信可能を示す通信ステータスに更新する。
【００９１】
共通エリア９００が、ドライバステータスレジスタ９０１に加えて、ＰＣＩｅステータスレジスタ９０３を有する場合、プラットフォーム２−１のブリッジドライバ２０は、共通レジスタ９０２およびＰＣＩｅステータスレジスタ９０３に記憶される通信ステータスを参照して、プラットフォーム２と通信を行う。
【００９２】
これにより、プラットフォーム２における通信エラー等によって当該プラットフォーム２自身に対応する共通レジスタ９０２に記憶される通信ステータスを更新できない場合に、当該プラットフォーム２との通信が行われることを防止できる。その結果、情報処理システム１内のいずれかのプラットフォーム２における通信エラーの発生によって、他のプラットフォーム２においても通信エラーが発生することをより効果的に抑制できる。
【００９３】
本実施形態では、共通エリア９００が、ドライバステータスレジスタ９０１およびＰＣＩｅステータスレジスタ９０３の両方を有する例について説明するが、共通エリア９００は、ドライバステータスレジスタ９０１およびＰＣＩｅステータスレジスタ９０３の少なくとも一方を有していれば良い。そして、共通エリア９００が、ドライバステータスレジスタ９０１およびＰＣＩｅステータスレジスタ９０３のうち一方のみを有する場合、プラットフォーム２のブリッジドライバ２０は、ドライバステータスレジスタ９０１およびＰＣＩｅステータスレジスタ９０３のうち一方に記憶される通信ステータスを参照して、プラットフォーム２と通信を行うものとする。
【００９４】
図１０は、本実施形態にかかる情報処理システムにおけるＰＣＩｅブリッジコントローラのレジスタが有する共通レジスタの構成の一例を示す図である。
【００９５】
本実施形態では、共通レジスタ９０２は、図１０に示すように、３２ビットのレジスタである。そして、図１０に示すように、共通レジスタ９０２において、２５番目〜３１番目までのビットｒｓｖが、当該共通レジスタ９０２に対応するプラットフォーム２に対して他のプラットフォーム２との通信の予約が入っているか否かを示すビットである。
【００９６】
また、図１０に示すように、共通レジスタ９０２において、２４番目のビットａｃｔｉｖｅが、当該共通レジスタ９０２に割り当てられたスロット３４に接続されているプラットフォーム２の通信ステータスを示すビットである。プラットフォーム２のブリッジドライバ２０は、当該ブリッジドライバ２０が有効な状態から無効な状態に遷移した場合、２４番目のビットａｃｔｉｖｅを０に更新する。一方、プラットフォーム２のブリッジドライバ２０は、当該ブリッジドライバ２０が無効な状態から有効な状態に遷移した場合、２４番目のビットａｃｔｉｖｅを１に更新する。
【００９７】
また、図１０に示すように、共通レジスタ９０２において、１６番目〜２３番目までのビットｍоｄｅが、当該共通レジスタ９０２に対応するプラットフォーム２の動作状態を示すビットである。
【００９８】
例えば、プラットフォーム２のブリッジドライバ２０は、プラットフォーム２において初期化が行われている場合、１６番目〜２３番目までのビットｍоｄｅを、初期化を表す０ｘ００に更新する。
【００９９】
また、例えば、プラットフォーム２のブリッジドライバ２０は、プラットフォーム２において初期化が完了している場合、１６番目〜２３番目までのビットｍоｄｅを、初期化の完了を表す０ｘ０１に更新する。
【０１００】
また、例えば、プラットフォーム２のブリッジドライバ２０は、プラットフォーム２が無効な状態から有効な状態へと変化している通信準備中である場合、１６番目〜２３番目までのビットｍоｄｅを、通信準備中を表す０ｘ２０に更新する。
【０１０１】
また、例えば、プラットフォーム２のブリッジドライバ２０は、プラットフォーム２が有効な状態へ変更している場合、１６番目〜２３番目のビットｍоｄｅを、有効な状態を表す０ｘ２１に更新する。
【０１０２】
また、例えば、プラットフォーム２のブリッジドライバ２０は、プラットフォーム２が有効な状態から無効な状態への遷移準備中である場合、１６番目〜２３番目までのビットｍоｄｅを、遷移準備中を表す０ｘ３０に更新する。
【０１０３】
また、例えば、プラットフォーム２のブリッジドライバ２０は、プラットフォーム２が有効な状態から無効な状態へ遷移している遷移完了待ちである場合、１６番目〜２３番目までのビットｍоｄｅを、遷移完了待ちを表す０ｘ３１に更新する。
【０１０４】
さらに、例えば、プラットフォーム２のブリッジドライバ２０は、プラットフォーム２が無効な状態である場合、１６番目〜２３番目までのビットｍоｄｅを、無効な状態を表す０ｘ３２に更新する。
【０１０５】
また、図１０に示すように、共通レジスタ９０２において、０番目〜１５番目までのビットａｃｔｉｖｅ＿ｎоｄｅが、当該共通レジスタ９０２に対応するプラットフォーム２が通信可能なプラットフォーム２を示すビットである。ここでは、ビットの番号が、プラットフォーム２が接続されるスロット３４の番号と一致している。
【０１０６】
例えば、０番目のビットは、スロット＃０に対応しており、当該スロット＃０に接続されるプラットフォーム２が通信可能か否かを示す。１番目〜１５番目までのビットも同様に、スロット３４の番号と一致しており、各スロット３４に接続されるプラットフォーム２が通信可能か否かを示している。
【０１０７】
本実施形態では、プラットフォーム２のブリッジドライバ２０は、複数のプラットフォーム２のそれぞれに対応する共通レジスタ９０２の２４番目のビットａｃｔｉｖｅを参照して、複数のスロット３４の番号と一致する番号（０番目〜１５番目）のビットａｃｔｉｖｅ＿ｎоｄｅを更新する。
【０１０８】
そして、プラットフォーム２のブリッジドライバ２０は、他のプラットフォーム２との通信を終了する際（言い換えると、当該ブリッジドライバ２０自身がアンロードされる際）、プラットフォーム２のブリッジドライバ２０は、当該プラットフォーム２自身の共通レジスタ９０２の２４番目のビットａｃｔｉｖｅが０であるか否かをチェックする。
【０１０９】
次いで、プラットフォーム２自身の共通レジスタ９０２の２４番目のビットａｃｔｉｖｅが０である場合、プラットフォーム２のブリッジドライバ２０は、当該プラットフォーム２自身の共通レジスタ９０２の０番目〜１５番目までの全てのビットａｃｔｉｖｅ＿ｎоｄｅが０であるか否かをチェックする。そして、プラットフォーム２自身の共通レジスタ９０２の０番目〜１５番目までの全てのビットａｃｔｉｖｅ＿ｎоｄｅが０である場合、プラットフォーム２のブリッジドライバ２０は、他のプラットフォーム２との通信を終了する。
【０１１０】
図１１は、本実施形態にかかる情報処理システムにおける複数のプラットフォーム間における通信処理の流れの一例を示すシーケンス図である。次に、図１１を用いて、本実施形態にかかる情報処理システム１における複数のプラットフォーム２間の通信処理の流れの一例について説明する。ここでは、プラットフォーム２−１のプロセッサＡと、プラットフォーム２−５のプロセッサＥと、の間における通信処理の流れの一例について説明するが、他のプラットフォーム２間においても同様にして通信処理を行うものとする。
【０１１１】
プラットフォーム２−１のプロセッサＡとＰＣＩｅブリッジコントローラ３のブリッジファームウェアは、互いに通信可能なリンク状態（コネクト状態ＣＴＤ）へ変化するためのリンクアップ処理を実行する（ステップＳ１１０１）。また、プラットフォーム２−５のプロセッサＥとＰＣＩｅブリッジコントローラ３のブリッジファームウェアも、同様に、リンクアップ処理を実行する。
【０１１２】
送信元のプラットフォーム２−１のプロセッサＡは、プラットフォーム２の初期化時および図示しないネットワークＩ／Ｆのアップロード時に、ＰＣＩｅブリッジコントローラ３へのアクセスが可能となるまで、他のプラットフォーム２との通信を行わずに待機する。ＰＣＩｅブリッジコントローラ３へのアクセスが可能となると、送信元のプラットフォーム２−１のプロセッサＡは、ＰＣＩｅブリッジコントローラ３が有するレジスタ３５のＢＡＲ空間（共通エリア９００）のアドレスを取得する（ステップＳ１１０２）。
【０１１３】
次いで、プラットフォーム２−１のプロセッサＡは、ＰＣＩｅブリッジコントローラ３内のマイコンが物理的にＲＣと接続されているか否かの確認処理を実行する。言い換えると、プラットフォーム２−１のプロセッサＡは、ＰＣＩｅブリッジコントローラ３に対して対向するプラットフォーム２が存在するか否かの確認処理を実行する（ステップＳ１１０３）。
【０１１４】
その際、プラットフォーム２−１のプロセッサＡは、ＰＣＩｅブリッジコントローラ３に対して、存否レポートの送信を要求する（ステップＳ１１０４）。ここで、存否レポートは、ＰＣＩｅブリッジコントローラ３の物理層によるプラットフォーム２とのリンク状態の検出結果を示すレポートである。言い換えると、存否レポートは、ＰＣＩｅブリッジコントローラ３に対向するプラットフォーム２が存在するか否かを示すレポートである。
【０１１５】
ＰＣＩｅブリッジコントローラ３のブリッジファームウェアは、プラットフォーム２−１から存否レポートの送信が要求されると、存否レポートを生成し（ステップＳ１１０５）、当該生成した存否レポートをプラットフォーム２０１に送信する（ステップＳ１１０６）。
【０１１６】
本実施形態では、ＰＣＩｅブリッジコントローラ３のブリッジファームウェアは、ＰＣＩｅブリッジコントローラ３が有するスロット３４毎のＧＰＩＯ（General  Purpose  Input  Output）端子から出力されるＰＲＳＮＴ２＃信号を取得する。ここで、ＰＲＳＮＴ＃信号は、ＰＣＩｅブリッジコントローラ３が有するマイコンに対してプラットフォーム２のＲＣが物理的に接続されているか否かを示す信号である。本実施形態では、ＰＲＳＮＴ＃信号は、プラットフォーム２のＲＣとＰＣＩｅブリッジコントローラ３のマイコンとが物理的に接続されているコネクト状態ＣＴＤの場合（すなわち、対向するプラットフォーム２が存在する場合）には、Ｌｏｗとなり、プラットフォーム２のＲＣとＰＣＩｅブリッジコントローラ３のマイコンとが物理的に接続されていないノットコネクト状態ＮＯＣの場合（すなわち、対向するプラットフォーム２が存在しない場合）には、Ｈｉｇｈとなる。ＰＣＩｅブリッジコントローラ３のブリッジファームウェアは、ＰＲＳＮＴ２＃信号に基づいて、ＰＣＩｅステータスレジスタ９０３に記憶される、プラットフォーム２−１，２−６の通信ステータスを更新する。そして、ＰＣＩｅブリッジコントローラ３のブリッジファームウェアは、ＰＣＩｅステータスレジスタ９０３に記憶される通信ステータスを参照して、対向するプラットフォーム２が存在するか否かを判断し、その判断結果に基づいて、存否レポートを生成する。
【０１１７】
次に、プラットフォーム２−１のプロセッサＡは、ＰＣＩｅブリッジコントローラ３に対向する他のプラットフォーム２−５がリンクアップ済みか否かを確認する（ステップＳステップＳ１１０７）。具体的には、他のプラットフォーム２−５へのアクセスを行っていない未アクセスの状態で当該他のプラットフォーム２−５へアクセスする場合、プロセッサＡは、ＰＣＩｅブリッジコントローラ３からの存否レポートを定期的に確認して、他のプラットフォーム２−５が通常稼働中であること（すなわち、ＰＣＩｅブリッジコントローラ３に対向するプラットフォーム２−５が存在すること）が確認されるまで、他のプラットフォーム２−５へのアクセスを抑制する。プロセッサＡは、存否レポートを定期的に確認して、他のプラットフォーム２−５が通常稼働中でないこと（すなわち、ＰＣＩｅブリッジコントローラ３に対向するプラットフォーム２−５が存在しないこと）が確認された場合には、他のプラットフォーム２−５への通信を行わない。
【０１１８】
一方、他のプラットフォーム２が通常稼働中であることが確認された場合、プラットフォーム２−１のプロセッサＡは、図示しないＰＣＩｅ／Ｗｒａｐｐｅｒレジスタにアクセスして、ＰＣＩｅブリッジコントローラ３のポート（ＥＰ）である該当ポートに対してリンクアップ済みか否かを判断する。
【０１１９】
例えば、プロセッサＡは、ＵＡＲＴ（Universal  Asynchronous  Receiver  Transmitter）経由でＬＩＮＫ＿ＭＯＮＩＴＯＲレジスタを参照して、他のプラットフォーム２−４が接続されるポートである該当ポートがリンクアップ済みか否かを判断する。ブリッジドライバ２０は、ＬＩＮＫ＿ＭＯＮＩＴＯＲレジスタが「０」の場合、リンクダウンと判断し、ＬＩＮＫ＿ＭＯＮＩＴＯＲレジスタが「１」の場合、リンクアップ済みと判断する。
【０１２０】
そして、該当ポートがリンクアップ済みであると判断した場合、プラットフォーム２−１のプロセッサＡは、ステップＳ１１０２において取得したアドレス空間に記憶される、送信先のプラットフォーム２−５の通信ステータスを参照して、ＰＣＩｅブリッジコントローラ３と通信を行うことによって、送信先のプラットフォーム２−５のプロセッサＥとの通信を実現する（ステップＳ１１０８）。
【０１２１】
このように、本実施形態にかかる情報処理システム１によれば、カーネルパニック等による突然の再起動が行われて通信エラーが発生しているプラットフォーム２との通信が行われることを防止できるので、情報処理システム１内のいずれかのプラットフォーム２における通信エラーの発生によって、他のプラットフォーム２においても通信エラーが発生することを抑制できる。
【０１２２】
上述の実施形態では、各部のＩ／ＯのインタフェースとしてＰＣＩｅを例に挙げて説明したが、インタフェースはＰＣＩｅに限定されない。例えば、各部のインタフェースは、データ転送バスによって、デバイス（周辺制御コントローラ）とプロセッサとの間でデータ転送を行える技術であればよい。データ転送バスは、１個の筐体等に設けられたローカルな環境（例えば、１つのシステムまたは１つの装置）で高速にデータを転送できる汎用のバスであってよい。インタフェースは、パラレルインターフェースおよびシリアルインターフェースのいずれであっても良い。
【０１２３】
Ｉ／Ｏインタフェースは、シリアル転送の場合、ポイント・ツー・ポイント接続ができ、データをパケットベースで転送可能な構成でよい。尚、Ｉ／Ｏインタフェースは、シリアル転送の場合、複数のレーンを有してよい。Ｉ／Ｏインタフェースのレイヤ構造は、パケットの生成及び復号を行うトランザクション層と、エラー検出等を行うデータリンク層と、シリアルとパラレルとを変換する物理層とを有してよい。また、Ｉ／Ｏインタフェースは、階層の最上位であり１または複数のポートを有するルートコンプレックス、Ｉ／Ｏデバイスであるエンドポイント、ポートを増やすためのスイッチ、および、プロトコルを変換するブリッジ等を含んでよい。インタフェースは、送信するデータとクロック信号とをマルチプレクサによって多重化して送信してもよい。この場合、受信側は、デマルチプレクサでデータとクロック信号を分離して良い。
【符号の説明】
【０１２４】
１    情報処理システム
２−１〜２−８，２    プラットフォーム
３    ＰＣＩｅブリッジコントローラ
２０    ブリッジドライバ
２１−１〜２１−８，２１    プロセッサ
２２    メモリ
２２１    通信バッファ
２３    ストレージ
３１    ＣＰＵ
３２    メモリ
３３    インターコネクト
３４−１〜３４−８，３４    スロット
３５    レジスタ
９００    共通エリア
９０１    ドライバステータスレジスタ
９０２−０〜９０２−７，９０２    共通レジスタ
【要約】
【課題】いずれかのプラットフォームにおいて突然の再起動が行われた場合に、突然の再起動が行われたプラットフォームに対して誤ってデータ通信が行われることを防止し、他のプラットフォームにおける通信エラーの発生を抑制する。
【解決手段】本発明の第１態様にかかる情報処理システムは、複数のプラットフォームと、当該複数のプラットフォームのそれぞれと通信可能に接続されかつ転送バスを用いて前記複数のプラットフォーム間での通信を中継する中継装置と、を備える。前記中継装置は、前記プラットフォームが通信可能な否かを示す通信ステータスを記憶する記憶領域を前記プラットフォーム毎に有するドライバステータスレジスタ、を備える。前記プラットフォームは、当該プラットフォーム自身の前記記憶領域に記憶される前記通信ステータスを更新し、かつ、前記記憶領域に記憶される前記通信ステータスを参照して、前記複数のプラットフォームのうち通信可能な前記プラットフォームと通信を行う通信ドライバを備える。
【選択図】図１１【図１】
0006826300.tif 000002
【図２】
0006826300.tif 000003
【図３】
0006826300.tif 000004
【図４】
0006826300.tif 000005
【図５】
0006826300.tif 000006
【図６】
0006826300.tif 000007
【図７】
0006826300.tif 000008
【図８】
0006826300.tif 000009
【図９】
0006826300.tif 000010
【図１０】
0006826300.tif 000011
【図１１】
0006826300.tif 000012