特許第6826300号(P6826300)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通クライアントコンピューティング株式会社の特許一覧

<>
  • 特許6826300-情報処理システム 図000002
  • 特許6826300-情報処理システム 図000003
  • 特許6826300-情報処理システム 図000004
  • 特許6826300-情報処理システム 図000005
  • 特許6826300-情報処理システム 図000006
  • 特許6826300-情報処理システム 図000007
  • 特許6826300-情報処理システム 図000008
  • 特許6826300-情報処理システム 図000009
  • 特許6826300-情報処理システム 図000010
  • 特許6826300-情報処理システム 図000011
  • 特許6826300-情報処理システム 図000012
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】6826300
(24)【登録日】2021年1月19日
(45)【発行日】2021年2月3日
(54)【発明の名称】情報処理システム
(51)【国際特許分類】
   G06F 13/14 20060101AFI20210121BHJP
   G06F 13/38 20060101ALI20210121BHJP
   G06F 13/36 20060101ALI20210121BHJP
【FI】
   G06F13/14 330A
   G06F13/38 350
   G06F13/36 310E
【請求項の数】3
【全頁数】20
(21)【出願番号】特願2020-77840(P2020-77840)
(22)【出願日】2020年4月24日
【審査請求日】2020年6月4日
【早期審査対象出願】
(73)【特許権者】
【識別番号】518133201
【氏名又は名称】富士通クライアントコンピューティング株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】特許業務法人酒井国際特許事務所
(72)【発明者】
【氏名】木村 真敏
(72)【発明者】
【氏名】中山 雄二
【審査官】 田名網 忠雄
(56)【参考文献】
【文献】 特許第6579255(JP,B2)
【文献】 特開2002−183102(JP,A)
【文献】 国際公開第2018/101136(WO,A1)
【文献】 特開2007−200319(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/455−9/54
G06F 11/07
G06F 13/10−13/14
G06F 13/20−13/42
G06F 15/16−15/177
(57)【特許請求の範囲】
【請求項1】
複数のプラットフォームと、当該複数のプラットフォームのそれぞれと通信可能に接続されかつ転送バスを用いて前記複数のプラットフォーム間での通信を中継する中継装置と、を備える情報処理システムであって、
前記中継装置は、
前記複数のプラットフォームに共通に1つ設けられ、かつ、前記プラットフォームが通信可能な否かを示す通信ステータスを記憶する記憶領域を前記プラットフォーム毎に有するドライバステータスレジスタ、を備え、
前記プラットフォームは、
当該プラットフォーム自身の前記記憶領域に記憶される前記通信ステータスを更新し、かつ、前記ドライバステータスレジスタが有する前記記憶領域のうち、他の前記プラットフォームの前記記憶領域に記憶される前記通信ステータスを参照して、前記複数のプラットフォームのうち通信可能な前記プラットフォームと通信を行う通信ドライバ、
を備える情報処理システム。
【請求項2】
前記転送バスは、PCI(Peripheral Component Interconnect Express)のバスであって、
前記中継装置は、
前記ドライバステータスレジスタとは異なるレジスタでありかつ前記複数のプラットフォームの前記通信ステータスを記憶するPCIeステータスレジスタと、
前記中継装置の物理層による前記プラットフォームとの通信状態の変化を検出し、その検出結果に基づいて、前記PCIeステータスレジスタに記憶される前記通信ステータスを更新する制御部と、を備え、
前記通信ドライバは、前記PCIeステータスレジスタおよび前記記憶領域に記憶される前記通信ステータスを参照して、前記プラットフォームと通信を行う請求項1に記載の情報処理システム。
【請求項3】
前記通信ドライバは、当該通信ドライバ自身がアンロードされた際に、前記通信ステータスを、前記プラットフォームが通信不可であること示す値に更新する請求項1または2に記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システムに関する。
【背景技術】
【0002】
複数のプラットフォームと、当該複数のプラットフォームのそれぞれと通信可能に接続されかつPCIe(Peripheral Component Interconnect Express)バス等の転送バスを用いて当該複数のプラットフォーム間での通信を中継する中継装置と、を備える情報処理システムが開発されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2018−5659号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、上述の情報処理システムにおいて、複数のプラットフォーム間において通信が行われている際に、いずれかのプラットフォームにおいてカーネルパニック等による突然の再起動によって通信エラーが発生した場合、通信相手の通信の状態を取得することができず、通信相手が存在するものとして、プラットフォーム間での通信が開始されてしまうため、通信エラーが発生していない他のプラットフォームにおいても次々と通信エラーが発生する場合がある。
【0005】
1つの側面では、本発明は、いずれかのプラットフォームにおいて突然の再起動が行われた場合に、突然の再起動が行われたプラットフォームに対して誤ってデータ通信が行われることを防止し、他のプラットフォームにおける通信エラーの発生を抑制することを目的とする。
【課題を解決するための手段】
【0006】
本発明の第1態様にかかる情報処理システムは、複数のプラットフォームと、当該複数のプラットフォームのそれぞれと通信可能に接続されかつ転送バスを用いて前記複数のプラットフォーム間での通信を中継する中継装置と、を備える。前記中継装置は、前記複数のプラットフォームに共通に1つ設けられ、かつ、前記プラットフォームが通信可能な否かを示す通信ステータスを記憶する記憶領域を前記プラットフォーム毎に有するドライバステータスレジスタ、を備える。前記プラットフォームは、当該プラットフォーム自身の前記記憶領域に記憶される前記通信ステータスを更新し、かつ、前記ドライバステータスレジスタが有する前記記憶領域のうち、他の前記プラットフォームの前記記憶領域に記憶される前記通信ステータスを参照して、前記複数のプラットフォームのうち通信可能な前記プラットフォームと通信を行う通信ドライバを備える。
【発明の効果】
【0007】
本発明の上記第1態様によれば、いずれかのプラットフォームにおいて突然の再起動が行われた場合に、突然の再起動が行われたプラットフォームに対して誤ってデータ通信が行われることを防止し、転送バスのエラーの発生を抑制することができる。
【図面の簡単な説明】
【0008】
図1図1は、本実施形態にかかる情報処理システムの全体構成の一例を示す図である。
図2図2は、本実施形態にかかる情報処理システムにおけるプラットフォームのソフトウェア構成の一例を示す図である。
図3図3は、本実施形態にかかる情報処理システムにおけるPCIeブリッジコントローラのハードウェア構成の一例を模式的に示す図である。
図4図4は、本実施形態の一例としてのPCIeのレイヤ構成を示す図である。
図5図5は、本実施形態にかかる情報処理システムにおけるプロセッサからの他のプロセッサの見え方を例示する図である。
図6図6は、本実施形態にかかる情報処理システムにおけるプロセッサからの他のプロセッサの見え方を例示する図である。
図7図7は、本実施形態にかかる情報処理システムにおけるPCIeブリッジコントローラを介したプラットフォーム間でのデータ転送方法の一例を説明するための図である。
図8図8は、本実施形態にかかる情報処理システムにおけるPCIeブリッジコントローラを介したプラットフォーム間のデータ転送方法の一例を説明するための図である。
図9図9は、本実施形態にかかる情報処理システムにおけるPCIeブリッジコントローラが有するレジスタの構成の一例を説明するための図である。
図10図10は、本実施形態にかかる情報処理システムにおけるPCIeブリッジコントローラのレジスタが有する共通レジスタの構成の一例を示す図である。
図11図11は、本実施形態にかかる情報処理システムにおける複数のプラットフォーム間における通信処理の流れの一例を示すシーケンス図である。
【発明を実施するための形態】
【0009】
以下、添付の図面を用いて、本実施形態にかかる情報処理システムの一例について説明する。
【0010】
図1は、本実施形態にかかる情報処理システムの全体構成の一例を示す図である。図1に示すように、本実施形態にかかる情報処理システム1は、複数のプラットフォーム2−1〜2−8と、PCIeブリッジコントローラ3と、を備える。複数のプラットフォーム2−1〜2−8は、それぞれPCIeブリッジコントローラ3に接続されている。
【0011】
以下の説明では、複数のプラットフォーム2−1〜2−8を区別する必要がなく、任意のプラットフォームを示す場合には、プラットフォーム2と記載する。また、ここでは、情報処理システム1が、8つのプラットフォーム2−1〜2−8を有する例について説明するが、複数のプラットフォーム2を有するものであれば、これに限定するものではない。
【0012】
プラットフォーム2−1は、プロセッサ21−1を備える。同様に、プラットフォーム2−2〜2−8も、プロセッサ21−2〜21−8をそれぞれ備える。
【0013】
プロセッサ21−1〜21−8は、それぞれ違うメーカ(ベンダ)から提供されても良い。例えば、プロセッサ21−1,21−2,21−3,21−4,21−5,21−6,21−7,21−8は、それぞれ、A社,B社,C社,D社,E社,F社,G社,H社が提供するものであるとする。
【0014】
また、以下、プロセッサ21−1,21−2,21−3,21−4,21−5,21−6,21−7,21−8を、それぞれプロセッサA,B,C,D,E,F,G,Hという場合がある。また、PCIeブリッジコントローラ3に搭載されているEPに対して、それぞれ異なるプラットフォームを接続しても良い。さらに、複数のEPを1つのプラットフォーム2に接続し、プラットフォーム2側が複数のRCを用いてPCIeブリッジコントローラ3と通信しても良い。
【0015】
以下の説明では、プロセッサを示す符号としては、複数のプロセッサのうち1つを特定する必要があるときには符号21−1〜21−8もしくは符号A〜H等を用いるが、任意のプロセッサを指すときには符号21を用いる。
【0016】
プラットフォーム2−1〜2−8は、AI推論処理や画像処理等の演算処理を行なうコンピュータ環境であり、プロセッサ21や、図7に示すストレージ23およびメモリ(物理メモリ)22を備える。
【0017】
プラットフォーム2においては、プロセッサ21がメモリ22やストレージ23に格納されたプログラムを実行することで各種機能を実現する。
【0018】
ストレージ23は、ハードディスクドライブ(HDD:Hard Disk Drive)、SSD(Solid State Drive)、ストレージクラスメモリ(SCM:Storage Class Memory)等の記憶装置であって、種々のデータを格納するものである。
【0019】
メモリ22は、ROM(Read Only Memory)およびRAM(Random Access Memory)を含む記憶メモリである。メモリ22のROMには、各種ソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ22上のソフトウェアプログラムは、プロセッサ21に適宜読み込まれて実行される。また、メモリ22のRAMは、一次記憶メモリあるいはワーキングメモリとして利用される。
【0020】
プロセッサ21は、プラットフォーム2全体を制御する。プロセッサ21は、マルチプロセッサであってもよい。プロセッサ21は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)、FPGA(Field Programmable Gate Array)のいずれか一つであってもよい。また、プロセッサ21は、CPU、MPU、DSP、ASIC、PLD、FPGAのうちの2種類以上の要素の組み合わせであってもよい。
【0021】
図2は、本実施形態にかかる情報処理システムにおけるプラットフォームのソフトウェア構成の一例を示す図である。図2では、プラットフォーム2−1〜2−3のソフトウェア構成のみを図示しているが、他のプラットフォーム2−4〜2−8も同様のソフトウェア構成を有するものとする。
【0022】
図2に示すように、プラットフォーム2−1は、Windows(登録商標)をOSとし、このOS上において各種プログラムが実行される。プラットフォーム2−2,2−3は、それぞれLinux(登録商標)をOSとし、このOS上において分散処理プログラム(分散処理A,B)が実行される。
【0023】
各プラットフォーム2には、ブリッジドライバ20が備えられており、プラットフォーム2は、このブリッジドライバ20を介してPCIeブリッジコントローラ3および他のプラットフォーム2との間で通信を行なう。ブリッジドライバ20による通信方法については後述する。
【0024】
各プラットフォーム2においては、プロセッサ21およびメモリ(物理メモリ)22((図7等参照)を備え、プロセッサ21がメモリ22に格納されたOSや各種プログラム,ドライバ等を実行することでそれぞれの機能を実現する。
【0025】
各プラットフォーム2に備えられるプロセッサ21は、互いに違うベンダによって提供されるものであってもよい。図1に示す例においては、少なくとも一部のプラットフォーム2(例えば、プラットフォーム2−7)に複数のRCを有するプラットフォーム(例えば、Intel社のx86プロセッサ)が用いられてもよい。
【0026】
また、各プラットフォーム2は、それぞれ他のドライバ構成に影響を与えないように独立動作可能に構成されている。
【0027】
プラットフォーム2において、メモリ22の記憶領域の一部は、図7を用いて後述する如く、プラットフォーム2間(プロセッサ21間)において転送されるデータが一時的に格納される通信バッファ221として用いられる。
【0028】
PCIeブリッジコントローラ3は、複数のプラットフォーム2−1〜2−8間におけるデータ等の通信を実現する。
【0029】
図3は、本実施形態にかかる情報処理システムにおけるPCIeブリッジコントローラのハードウェア構成の一例を模式的に示す図である。
【0030】
図3に示すように、PCIeブリッジコントローラ3は、複数のプラットフォーム10のそれぞれと通信可能に接続されPCIeバス(転送バスの一例)を用いて当該複数のプラットフォーム10間での通信を中継する中継装置の一例である。本実施形態では、PCIeブリッジコントローラ3は、8チャンネルのEPを1チップ内に有する。PCIeブリッジコントローラ3は、図3に示すように、CPU31、メモリ32、インターコネクト33、および複数のスロット34−1〜34−8を備える。
【0031】
スロット34−1〜34−8には、それぞれPCIeの規格を満たすように構成されたデバイスが接続される。本実施形態にかかる情報処理システム1では、スロット34−1〜34−8のそれぞれにプラットフォーム2が接続される。
【0032】
以下の説明では、スロットを示す符号としては、複数のスロットのうち1つを特定する必要がある場合には符号34−1〜34−8を用いるが、任意のスロットを示す場合には符号34を用いる。
【0033】
また、一つのスロット34に対して一つのプラットフォーム2が接続されてもよく、複数のスロット34に対して一つのプラットフォーム2が接続されてもよく、種々変形して実施することができる。
【0034】
複数のスロット34に対して一つのプラットフォーム2をアサインすることで、このプラットフォーム2に広い通信帯域を用いた通信を行なわせることができる。
【0035】
各スロット34は、内部バス(Internal Bus)を介してインターコネクト33にそれぞれ接続されている。また、インターコネクト33には、CPU31およびメモリ32が接続されている。これにより、各スロット34と、CPU31と、メモリ32と、は、インターコネクト33を介して相互に通信可能に接続されている。
【0036】
メモリ32は、例えば、ROMおよびRAMを含む記憶メモリ(物理メモリ)である。メモリ32のROMには、データ通信制御に係るソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ32上のソフトウェアプログラムは、CPU31に適宜読み込まれて実行される。また、メモリ32のRAMは、一次記憶メモリあるいはワーキングメモリとして利用される。
【0037】
さらに、PCIeブリッジコントローラ3においては、各スロット34に対応させてレジスタ35(図7参照)が備えられ、このレジスタ35のBAR(Base Address Register)空間には、スロット毎に記憶領域が備えられる。すなわち、レジスタ35のBAR空間にはスロット#0〜#7のそれぞれに対応する記憶領域が設けられている。
【0038】
PCIeブリッジコントローラ3においては、後述の如く、BAR空間のスロット34毎の記憶領域を用いてプラットフォーム2間のデータ転送を行なう。
【0039】
CPU31は、PCIeブリッジコントローラ3全体を制御する。CPU31は、マルチプロセッサであってもよい。CPU31に代えて、MPU、DSP、ASIC、PLD、FPGAのいずれか一つが用いられてもよい。また、CPU31は、CPU、MPU、DSP、ASIC、PLD、FPGAのうちの2種類以上の要素の組み合わせであってもよい。
【0040】
そして、CPU31がメモリ32に格納されたソフトウェアプログラムを実行することで、PCIeブリッジコントローラ3におけるプラットフォーム2間(プロセッサ21間)のデータ転送を実現する。
【0041】
PCIeブリッジコントローラ3は、プラットフォーム2間のデータ転送を高速化するためにPCIeを用い、図1に示すように、各プラットフォーム2に備えられるプロセッサをそれぞれRCとして動作させ、デバイスとして動作するEP間でデータ転送を実現する。
【0042】
具体的には、情報処理システム1においては、各プラットフォーム2のプロセッサを、データ転送インタフェースとしてPCIeのRCとして動作させる。また、各プラットフォーム2(プロセッサ21)に対して、PCIeブリッジコントローラ3を、すなわち、各プラットフォーム2が接続されているスロット34をEPとして動作させる。
【0043】
PCIeブリッジコントローラ3をプロセッサ21に対してEPとして接続する手法としては、既知の種々の手法を用いて実現することができる。
【0044】
例えば、PCIeブリッジコントローラ3は、プラットフォーム2との接続時に、EPとして機能することを示す信号を当該プロセッサ21に通知することで、EPとしてプロセッサ21と接続する。
【0045】
PCIeブリッジコントローラ3においては、EPtoEP(End Point to End Point)でデータをトンネリングさせて、複数のRCにデータを転送する。プラットフォーム2間の通信は、PCIeのトランザクションが発生したときに論理的に接続され、1つのプロセッサ21にデータ転送が集中しないときは、それぞれのプラットフォーム2間で並行してデータ転送できる。
【0046】
図4は、本実施形態の一例としてのPCIeのレイヤ構成を示す図である。図4では、プラットフォーム2−1のプロセッサAとプラットフォーム2−2のプロセッサBとの間で通信を行なう例を示すが、他のプラットフォーム2のプロセッサ21間においても同様にして通信を行うものとする。
【0047】
送信元のプラットフォーム2−1においては、RCであるプロセッサAにおいて生成されたデータが、ソフトウェア、トランザクション層、データリンク層、および物理層(PHY)を、順次、転送され、物理層においてPCIeブリッジコントローラ3の物理層に転送される。
【0048】
PCIeブリッジコントローラ3においては、物理層、データリンク層、トランザクション層、およびソフトウェアを順次、転送され、送信先のプラットフォーム2のRCに対応するEPにトンネリングによりデータが転送される。
【0049】
すなわち、PCIeブリッジコントローラ3においては、EP間でデータをトンネリングさせること(換言すれば、一のEPが一のプラットフォーム2から受信したデータを、他のEPにトンネリングさせること)で、一のプラットフォーム2に含まれるRCから他のプラットフォーム2に含まれるRCにデータが転送される。
【0050】
送信先のプラットフォーム2−2においては、PCIeブリッジコントローラ3から転送されたデータが、物理層(PHY)、データリンク層、トランザクション層、およびソフトウェアを、順次、転送され、送信先のプラットフォーム2−2のプロセッサBに転送される。
【0051】
情報処理システム1において、プロセッサ21間(プラットフォーム2間)の通信は、PCIeのトランザクションが発生したときに論理的に接続される。
【0052】
PCIeブリッジコントローラ3が有する8スロットのうちの一つに接続された特定のプロセッサ21に対して複数の他のプロセッサ21からのデータ転送が集中しないときは、異なる任意の複数組のそれぞれのプロセッサ21間で並行してデータ転送してもよい。
【0053】
例えば、プラットフォーム2−1のプロセッサAに対して、プラットフォーム2−2のプロセッサBおよびプラットフォーム2−3のプロセッサCのそれぞれが通信しようとする場合には、PCIeブリッジコントローラ3は、プロセッサB,Cの通信をシリアルに処理する。
【0054】
ただし、プロセッサA−プロセッサB,プロセッサC−プロセッサD,プロセッサE−プロセッサFのように、それぞれが異なるプロセッサ同士で通信し、特定のプロセッサに通信が集中しない場合には、PCIeブリッジコントローラ3は、各プロセッサ21間通信を並行して処理する。
【0055】
図5は、本実施形態にかかる情報処理システムにおけるプロセッサからの他のプロセッサの見え方を例示する図である。また、図6は、本実施形態にかかる情報処理システムにおけるプロセッサからの他のプロセッサの見え方を例示する図である。
【0056】
各プロセッサ21間で通信が行なわれている状態においても、各プロセッサ21上のOS(例えばWindowsのデバイスマネージャ)からは、PCIeブリッジコントローラ3しか見えず、接続先の他のプロセッサ21を直接管理する必要がない。すなわち、PCIeブリッジコントローラ3のデバイスドライバでPCIeブリッジコントローラ3の先に接続されたプロセッサ21を管理すれば良い。
【0057】
そのため、送信元、受信先それぞれのプロセッサ21を動作させるためのデバイスドライバを準備する必要がなく、PCIeブリッジコントローラ3のドライバでPCIeブリッジコントローラ3に対して通信処理を行なうだけでプロセッサ21間の通信を行なうことができる。
【0058】
図7は、本実施形態にかかる情報処理システムにおけるPCIeブリッジコントローラを介したプラットフォーム間でのデータ転送方法の一例を説明するための図である。図7では、スロット#0に接続されたプラットフォーム2−1からスロット#4に接続されたプラットフォーム2−5にデータを転送する場合について説明するが、他のプラットフォーム2間におけるデータ転送も同様に行うものとする。
【0059】
データの送信元のプラットフォーム2−1において、ソフトウェア等によって送信されるデータ(以下、送信データという場合がある)が、プラットフォーム2−1に備えられるストレージ23から通信バッファ221にロードされる(符号P1参照)。
【0060】
ソフトウェアによって、通信バッファ221における送信データが格納された領域の位置情報(例えば、Offset/Length)と、送信先の情報(例えば、Slot/Offset)と、が指定され、ブリッジドライバ20に受け渡される(符号P2参照)。
【0061】
送信元EPにおいて、ブリッジドライバ20は、BAR空間のスロット#4のアドレスに送信データを渡す(符号P3)。これにより、PCIeブリッジコントローラ3において、EPtoEPにより送信元ポートから送信先のプラットフォーム2に対応するスロット(送信先スロット)に送信データが送信される(符号P4参照)。送信先スロットにおいては、レジスタ35のBAR空間のスロット#4に対応する記憶領域に送信データが格納される。
【0062】
送信先スロットにおいて、例えば、ブリッジドライバ20が、レジスタ35のBAR空間のスロット#4に対応する記憶領域から送信データを通信バッファ221に転送し、送信データは、この通信バッファ221においてoffsetによって特定される所定の領域に格納される(符号P5参照)。
【0063】
送信先プラットフォーム2において、例えば、プログラムが、通信バッファ221に格納された送信データを読み出して、メモリ(ローカルメモリ)22やストレージ23に移動させる(符号P6,P7参照)。
【0064】
以上のようにして、送信元のプラットフォーム2−1から送信先のプラットフォーム2−5に送信データが転送される。
【0065】
図8は、本実施形態にかかる情報処理システムにおけるPCIeブリッジコントローラを介したプラットフォーム間のデータ転送方法の一例を説明するための図である。図8には、スロット#0に接続されたプラットフォーム2−1からスロット#4に接続されたプラットフォーム2−5にデータを転送する場合を示すが、他のプラットフォーム2間においても同様にしてデータを転送するものとする。
【0066】
送信元のプラットフォーム2−1は、ソフトウェア等によって送信される送信データを、プラットフォーム2−1に備えられるストレージ23等からプラットフォーム2−1のメモリ領域36に格納する(ステップS701)。メモリ領域36は、転送される送信データが一時的に格納される通信バッファの一部であっても良い。メモリ領域36は、プラットフォーム2のそれぞれに、メモリ22等と同じ大きさで設けられた領域である。メモリ領域36は、スロット305の数に応じて分割されている。メモリ領域36の分割された記憶領域は、いずれかのスロット305に対応付けられている。例えば、メモリ領域36内のスロット♯0で示す記憶領域は、スロット♯0に接続されたプラットフォーム2−1に対応付けられ、メモリ領域36内にスロット♯4で示す記憶領域は、スロット♯4に接続されたプラットフォーム2−5に対応付けられている。プラットフォーム2−1は、メモリ領域36のうち、送信先のスロット305に割り当てられた領域(ここでは、スロット♯4)に送信データを格納する。
【0067】
ルートコンプレックスとしての機能を有する送信元のプラットフォーム2−1は、プラットフォーム2のメモリ領域36の記憶領域に基づいて、送信先のスロット305を示すスロット情報と、送信先のメモリ領域36における分割領域内におけるアドレスを示すアドレス情報と、を取得または生成する(ステップS702)。
【0068】
送信元のプラットフォーム2−1は、スロット情報と、アドレス情報と、送信データと、を含む転送データを複数のエンドポイントの機能を有するPCIeブリッジコントローラ3に渡す(ステップS703)。これにより、PCIeブリッジコントローラ3は、スロット情報に基づいてEPtoEPにより送信元のスロット305と送信先のスロット305とを接続することにより、転送データを送信先のプラットフォーム2−4に転送する(ステップS704)。送信先のプラットフォーム2は、スロット情報およびアドレス情報に基づいて、送信先のプラットフォーム2の通信バッファ221に対応する記憶領域内のアドレス情報が示す領域に送信データ(または転送データ)を格納する(ステップS705)。
【0069】
送信先のプラットフォーム2−5において、プログラムが、通信バッファ221に格納された送信データを読み出して、メモリ(ローカルメモリ)22の他の領域やストレージ23に移動させる(ステップS706、ステップS707)。
【0070】
以上のようにして、送信元のプラットフォーム2−1から送信先のプラットフォーム2−5にデータ(転送データ)が転送される。
【0071】
ところで、複数のプラットフォーム2間において通信が行われている際に、いずれかのプラットフォーム2においてカーネルパニック等による突然の再起動が行われて通信エラーが発生した場合、他のプラットフォーム2は、当該通信エラーが発生したプラットフォーム2の通信の状態を取得することができなくなる。そのため、他のプラットフォーム2は、通信相手のプラットフォーム2(通信エラーが発生したプラットフォーム2)が通信可能であると判断して、当該通信相手のプラットフォーム2との通信を開始するため、当該他のプラットフォーム2においても通信エラーが発生する場合がある。
【0072】
そこで、本実施形態では、PCIeブリッジコントローラ3が、各プラットフォーム2が通信可能な否かを示す通信ステータスを記憶するレジスタを備える。そして、プラットフォーム2は、PCIeブリッジコントローラ3が備えるレジスタに記憶される通信ステータスを参照して、他のプラットフォーム2と通信を行う。
【0073】
これにより、カーネルパニック等による突然の再起動が行われて通信エラーが発生しているプラットフォームとの通信が行われることを防止できる。その結果、情報処理システム1内のいずれかのプラットフォーム2における通信エラーの発生によって、他のプラットフォーム2においても通信エラーが発生することを抑制できる。
【0074】
図9は、本実施形態にかかる情報処理システムにおけるPCIeブリッジコントローラが有するレジスタの構成の一例を説明するための図である。図9には、PCIeブリッジコントローラ3が有するレジスタ35のBAR空間のスロット#0に対応する記憶領域(以下、共通レジスタと言う)の構成の一例を示すが、他のスロット#1〜#7のそれぞれに対応する共通レジスタも同様の構成を有する。
【0075】
図9に示すように、PCIeブリッジコントローラ3が有するレジスタ35の各スロット34のBAR空間には、複数のスロット#0〜#8のレジスタ35間において共通するBAR空間(以下、共通エリアと言う)900が含まれる。
【0076】
そして、共通エリア900は、図9に示すように、ドライバステータスレジスタ901を有する。ここで、ドライバステータスレジスタ901は、スロット34(言い換えると、プラットフォーム2)毎に設けられる記憶領域である共通レジスタ902−0〜902−7を有する。以下、共通レジスタを示す符号としては、複数の共通レジスタのうち1つを特定する必要がある場合には符号902−0〜902−7を用いるが、任意の共通レジスタを示す場合には符号902を用いる。
【0077】
ここで、共通レジスタ902は、通信ステータスを記憶する記憶領域である。また、ここで、通信ステータスは、共通レジスタ902に対応するプラットフォーム2が通信可能か否かを示す。
【0078】
本実施形態では、図9に示すように、ドライバステータスレジスタ901が有する各スロット34の共通レジスタ902は、スロット34毎に、32ビットのレジスタが割り当てられている。そして、図9に示すように、共通レジスタ902が有するビットのうち、24番目のビットが、当該共通レジスタ902が割り当てられたスロット34(プラットフォーム2)の通信ステータスを表す。
【0079】
具体的には、共通レジスタ902に対応するプラットフォーム2が通信不可である場合、24番目のビット(通信ステータス)は、0となる。また、共通レジスタ902に対応するプラットフォーム2が通信可能である場合、24番目のビット(通信ステータス)は、1となる。
【0080】
プラットフォーム2のブリッジドライバ20(通信ドライバの一例)は、共通レジスタ902−0〜902−7のうち、プラットフォーム2自身に対応する共通レジスタ902に記憶される通信ステータス(本実施形態では、共通レジスタ902が有するビットのうち24番目のビット)を更新する。
【0081】
本実施形態では、プラットフォーム2のブリッジドライバ20は、当該ブリッジドライバ20自身がアンロードされた際に、通信ステータスを更新する。具体的には、プラットフォーム2のブリッジドライバ20は、当該ブリッジドライバ20自身がロードされている状態(ブリッジドライバ20自身が有効な状態)から、当該ブリッジドライバ20自身がアンロードされた状態(ブリッジドライバ20自身が無効な状態)に遷移する際に、プラットフォーム2自身に対応する共通レジスタ902に記憶される通信ステータスを0に更新する。
【0082】
また、本実施形態では、プラットフォーム2のブリッジドライバ20は、当該ブリッジドライバ20自身がロードされた際に、通信ステータスを更新する。具体的には、プラットフォーム2のブリッジドライバ20は、当該ブリッジドライバ20自身がアンロードされている状態(ブリッジドライバ20自身が無効な状態)から、当該ブリッジドライバ20自身がロードされた状態(ブリッジドライバ20自身が有効な状態)に遷移する際に、プラットフォーム2自身に対応する共通レジスタ902に記憶される通信ステータスを1に更新する。
【0083】
また、プラットフォーム2のブリッジドライバ20は、共通レジスタ902−0〜902−7に記憶される通信ステータス(本実施形態では、共通レジスタ902−0〜902−7のそれぞれの24番目のビット)を参照して、プラットフォーム2−1〜2−7のうち、通信可能なプラットフォーム2と通信を行う。一方、プラットフォーム2のブリッジドライバ20は、共通レジスタ902−0〜902−7に記憶される通信ステータス(本実施形態では、共通レジスタ902−0〜902−7のそれぞれの24番目のビット)を参照して、プラットフォーム2−1〜2−7のうち、通信不可のプラットフォーム2とは通信を行わない。
【0084】
これにより、カーネルパニック等による突然の再起動が行われて通信エラーが発生しているプラットフォーム2との通信が行われることを防止できる。その結果、情報処理システム1内のいずれかのプラットフォーム2における通信エラーの発生によって、他のプラットフォーム2においても通信エラーが発生することを抑制できる。また、ブリッジドライバ20は、後述するPCIeステータスレジスタ903に記憶される通信ステータスに基づいて、プラットフォーム2の再起動(例えば、カーネルパニック等による突然の再起動)を検出した場合、ドライバステータスレジスタ901に記憶される通信ステータスのうち、当該再起動を検出したプラットフォーム2の通信ステータス(または、再起動を検出したプラットフォーム2の共通レジスタ902全体)をクリアしても良い。そして、ブリッジドライバ20は、通信エラーが発生していない通常動作時等において、PCIeブリッジコントローラ3のCPU31によるドライバステータスレジスタ901の更新を行わせないようにしても良い。
【0085】
また、図9に示すように、共通レジスタ902が有するビットのうち、0番目〜15番目のビットは、当該共通レジスタ902に対応するスロット34(プラットフォーム2)が通信可能なプラットフォーム2を示すビットである。
【0086】
例えば、共通レジスタ902−0の1番目のビットは、スロット#1に接続されるプラットフォーム2−2と通信可能か否かを示すビットであり、0の場合には通信不可であることを示し、1の場合には通信可能であることを示す。また、共通レジスタ902−0の2番目のビットは、スロット#2に接続されるプラットフォーム2−3と通信可能か否かを示すビットであり、0の場合には通信不可であることを示し、1の場合には通信可能であることを示す。共通レジスタ902−0の3番目から15番目のビットも同様に、当該ビットの番号と一致するスロット34に接続されるプラットフォーム2と通信可能か否かを示す。
【0087】
また、共通エリア900は、図9に示すように、PCIeステータスレジスタ903を有する。ここで、PCIeステータスレジスタ903は、ドライバステータスレジスタ901とは異なるレジスタでありかつ複数のプラットフォーム2−1〜2−8の通信ステータスを記憶するレジスタである。
【0088】
PCIeブリッジコントローラ3のCPU31(制御部の一例)により実行されるファームウェア(以下、ブリッジファームウェアと言う)は、PCIeブリッジコントローラ3の物理層によるプラットフォーム2との通信状態(以下、リンク状態と言う)の変化を検出する。そして、ブリッジファームウェアは、リンク状態の変化の検出結果に基づいて、PCIeステータスレジスタ903に記憶される通信ステータスを更新する。
【0089】
本実施形態では、ブリッジファームウェアは、定期的に、リンク状態の変化を検出する。例えば、ブリッジファームウェアは、PCIeブリッジコントローラ3の物理層から割り込みが発行される際に、リンク状態が、プラットフォーム2との通信状態が通信可能な状態(以下、コネクト状態CTDと言う)から通信不可の状態(以下、ノットコネクト状態NOCと言う)に変化したのか、若しくは、プラットフォーム2との通信状態がノットコネクト状態NOCからコネクト状態CTDに変化したのかを検出する。
【0090】
そして、ブリッジファームウェアは、リンク状態が、コネクト状態CTDからノットコネクト状態NOCに変化したことを検出した場合、PCIeステータスレジスタ903に記憶される通信ステータスのうち、リンク状態がノットコネクト状態NOCに変化したプラットフォーム2の通信ステータスを、通信不可を示す通信ステータスに更新する。また、ブリッジファームウェアは、リンク状態が、ノットコネクト状態NOCからコネクト状態CTDに変化したことを検出した場合、PCIeステータスレジスタ903に記憶される通信ステータスのうち、リンク状態がコネクト状態CTDに変化したプラットフォーム2の通信ステータスを、通信可能を示す通信ステータスに更新する。
【0091】
共通エリア900が、ドライバステータスレジスタ901に加えて、PCIeステータスレジスタ903を有する場合、プラットフォーム2−1のブリッジドライバ20は、共通レジスタ902およびPCIeステータスレジスタ903に記憶される通信ステータスを参照して、プラットフォーム2と通信を行う。
【0092】
これにより、プラットフォーム2における通信エラー等によって当該プラットフォーム2自身に対応する共通レジスタ902に記憶される通信ステータスを更新できない場合に、当該プラットフォーム2との通信が行われることを防止できる。その結果、情報処理システム1内のいずれかのプラットフォーム2における通信エラーの発生によって、他のプラットフォーム2においても通信エラーが発生することをより効果的に抑制できる。
【0093】
本実施形態では、共通エリア900が、ドライバステータスレジスタ901およびPCIeステータスレジスタ903の両方を有する例について説明するが、共通エリア900は、ドライバステータスレジスタ901およびPCIeステータスレジスタ903の少なくとも一方を有していれば良い。そして、共通エリア900が、ドライバステータスレジスタ901およびPCIeステータスレジスタ903のうち一方のみを有する場合、プラットフォーム2のブリッジドライバ20は、ドライバステータスレジスタ901およびPCIeステータスレジスタ903のうち一方に記憶される通信ステータスを参照して、プラットフォーム2と通信を行うものとする。
【0094】
図10は、本実施形態にかかる情報処理システムにおけるPCIeブリッジコントローラのレジスタが有する共通レジスタの構成の一例を示す図である。
【0095】
本実施形態では、共通レジスタ902は、図10に示すように、32ビットのレジスタである。そして、図10に示すように、共通レジスタ902において、25番目〜31番目までのビットrsvが、当該共通レジスタ902に対応するプラットフォーム2に対して他のプラットフォーム2との通信の予約が入っているか否かを示すビットである。
【0096】
また、図10に示すように、共通レジスタ902において、24番目のビットactiveが、当該共通レジスタ902に割り当てられたスロット34に接続されているプラットフォーム2の通信ステータスを示すビットである。プラットフォーム2のブリッジドライバ20は、当該ブリッジドライバ20が有効な状態から無効な状態に遷移した場合、24番目のビットactiveを0に更新する。一方、プラットフォーム2のブリッジドライバ20は、当該ブリッジドライバ20が無効な状態から有効な状態に遷移した場合、24番目のビットactiveを1に更新する。
【0097】
また、図10に示すように、共通レジスタ902において、16番目〜23番目までのビットmоdeが、当該共通レジスタ902に対応するプラットフォーム2の動作状態を示すビットである。
【0098】
例えば、プラットフォーム2のブリッジドライバ20は、プラットフォーム2において初期化が行われている場合、16番目〜23番目までのビットmоdeを、初期化を表す0x00に更新する。
【0099】
また、例えば、プラットフォーム2のブリッジドライバ20は、プラットフォーム2において初期化が完了している場合、16番目〜23番目までのビットmоdeを、初期化の完了を表す0x01に更新する。
【0100】
また、例えば、プラットフォーム2のブリッジドライバ20は、プラットフォーム2が無効な状態から有効な状態へと変化している通信準備中である場合、16番目〜23番目までのビットmоdeを、通信準備中を表す0x20に更新する。
【0101】
また、例えば、プラットフォーム2のブリッジドライバ20は、プラットフォーム2が有効な状態へ変更している場合、16番目〜23番目のビットmоdeを、有効な状態を表す0x21に更新する。
【0102】
また、例えば、プラットフォーム2のブリッジドライバ20は、プラットフォーム2が有効な状態から無効な状態への遷移準備中である場合、16番目〜23番目までのビットmоdeを、遷移準備中を表す0x30に更新する。
【0103】
また、例えば、プラットフォーム2のブリッジドライバ20は、プラットフォーム2が有効な状態から無効な状態へ遷移している遷移完了待ちである場合、16番目〜23番目までのビットmоdeを、遷移完了待ちを表す0x31に更新する。
【0104】
さらに、例えば、プラットフォーム2のブリッジドライバ20は、プラットフォーム2が無効な状態である場合、16番目〜23番目までのビットmоdeを、無効な状態を表す0x32に更新する。
【0105】
また、図10に示すように、共通レジスタ902において、0番目〜15番目までのビットactive_nоdeが、当該共通レジスタ902に対応するプラットフォーム2が通信可能なプラットフォーム2を示すビットである。ここでは、ビットの番号が、プラットフォーム2が接続されるスロット34の番号と一致している。
【0106】
例えば、0番目のビットは、スロット#0に対応しており、当該スロット#0に接続されるプラットフォーム2が通信可能か否かを示す。1番目〜15番目までのビットも同様に、スロット34の番号と一致しており、各スロット34に接続されるプラットフォーム2が通信可能か否かを示している。
【0107】
本実施形態では、プラットフォーム2のブリッジドライバ20は、複数のプラットフォーム2のそれぞれに対応する共通レジスタ902の24番目のビットactiveを参照して、複数のスロット34の番号と一致する番号(0番目〜15番目)のビットactive_nоdeを更新する。
【0108】
そして、プラットフォーム2のブリッジドライバ20は、他のプラットフォーム2との通信を終了する際(言い換えると、当該ブリッジドライバ20自身がアンロードされる際)、プラットフォーム2のブリッジドライバ20は、当該プラットフォーム2自身の共通レジスタ902の24番目のビットactiveが0であるか否かをチェックする。
【0109】
次いで、プラットフォーム2自身の共通レジスタ902の24番目のビットactiveが0である場合、プラットフォーム2のブリッジドライバ20は、当該プラットフォーム2自身の共通レジスタ902の0番目〜15番目までの全てのビットactive_nоdeが0であるか否かをチェックする。そして、プラットフォーム2自身の共通レジスタ902の0番目〜15番目までの全てのビットactive_nоdeが0である場合、プラットフォーム2のブリッジドライバ20は、他のプラットフォーム2との通信を終了する。
【0110】
図11は、本実施形態にかかる情報処理システムにおける複数のプラットフォーム間における通信処理の流れの一例を示すシーケンス図である。次に、図11を用いて、本実施形態にかかる情報処理システム1における複数のプラットフォーム2間の通信処理の流れの一例について説明する。ここでは、プラットフォーム2−1のプロセッサAと、プラットフォーム2−5のプロセッサEと、の間における通信処理の流れの一例について説明するが、他のプラットフォーム2間においても同様にして通信処理を行うものとする。
【0111】
プラットフォーム2−1のプロセッサAとPCIeブリッジコントローラ3のブリッジファームウェアは、互いに通信可能なリンク状態(コネクト状態CTD)へ変化するためのリンクアップ処理を実行する(ステップS1101)。また、プラットフォーム2−5のプロセッサEとPCIeブリッジコントローラ3のブリッジファームウェアも、同様に、リンクアップ処理を実行する。
【0112】
送信元のプラットフォーム2−1のプロセッサAは、プラットフォーム2の初期化時および図示しないネットワークI/Fのアップロード時に、PCIeブリッジコントローラ3へのアクセスが可能となるまで、他のプラットフォーム2との通信を行わずに待機する。PCIeブリッジコントローラ3へのアクセスが可能となると、送信元のプラットフォーム2−1のプロセッサAは、PCIeブリッジコントローラ3が有するレジスタ35のBAR空間(共通エリア900)のアドレスを取得する(ステップS1102)。
【0113】
次いで、プラットフォーム2−1のプロセッサAは、PCIeブリッジコントローラ3内のマイコンが物理的にRCと接続されているか否かの確認処理を実行する。言い換えると、プラットフォーム2−1のプロセッサAは、PCIeブリッジコントローラ3に対して対向するプラットフォーム2が存在するか否かの確認処理を実行する(ステップS1103)。
【0114】
その際、プラットフォーム2−1のプロセッサAは、PCIeブリッジコントローラ3に対して、存否レポートの送信を要求する(ステップS1104)。ここで、存否レポートは、PCIeブリッジコントローラ3の物理層によるプラットフォーム2とのリンク状態の検出結果を示すレポートである。言い換えると、存否レポートは、PCIeブリッジコントローラ3に対向するプラットフォーム2が存在するか否かを示すレポートである。
【0115】
PCIeブリッジコントローラ3のブリッジファームウェアは、プラットフォーム2−1から存否レポートの送信が要求されると、存否レポートを生成し(ステップS1105)、当該生成した存否レポートをプラットフォーム201に送信する(ステップS1106)。
【0116】
本実施形態では、PCIeブリッジコントローラ3のブリッジファームウェアは、PCIeブリッジコントローラ3が有するスロット34毎のGPIO(General Purpose Input Output)端子から出力されるPRSNT2#信号を取得する。ここで、PRSNT#信号は、PCIeブリッジコントローラ3が有するマイコンに対してプラットフォーム2のRCが物理的に接続されているか否かを示す信号である。本実施形態では、PRSNT#信号は、プラットフォーム2のRCとPCIeブリッジコントローラ3のマイコンとが物理的に接続されているコネクト状態CTDの場合(すなわち、対向するプラットフォーム2が存在する場合)には、Lowとなり、プラットフォーム2のRCとPCIeブリッジコントローラ3のマイコンとが物理的に接続されていないノットコネクト状態NOCの場合(すなわち、対向するプラットフォーム2が存在しない場合)には、Highとなる。PCIeブリッジコントローラ3のブリッジファームウェアは、PRSNT2#信号に基づいて、PCIeステータスレジスタ903に記憶される、プラットフォーム2−1,2−6の通信ステータスを更新する。そして、PCIeブリッジコントローラ3のブリッジファームウェアは、PCIeステータスレジスタ903に記憶される通信ステータスを参照して、対向するプラットフォーム2が存在するか否かを判断し、その判断結果に基づいて、存否レポートを生成する。
【0117】
次に、プラットフォーム2−1のプロセッサAは、PCIeブリッジコントローラ3に対向する他のプラットフォーム2−5がリンクアップ済みか否かを確認する(ステップSステップS1107)。具体的には、他のプラットフォーム2−5へのアクセスを行っていない未アクセスの状態で当該他のプラットフォーム2−5へアクセスする場合、プロセッサAは、PCIeブリッジコントローラ3からの存否レポートを定期的に確認して、他のプラットフォーム2−5が通常稼働中であること(すなわち、PCIeブリッジコントローラ3に対向するプラットフォーム2−5が存在すること)が確認されるまで、他のプラットフォーム2−5へのアクセスを抑制する。プロセッサAは、存否レポートを定期的に確認して、他のプラットフォーム2−5が通常稼働中でないこと(すなわち、PCIeブリッジコントローラ3に対向するプラットフォーム2−5が存在しないこと)が確認された場合には、他のプラットフォーム2−5への通信を行わない。
【0118】
一方、他のプラットフォーム2が通常稼働中であることが確認された場合、プラットフォーム2−1のプロセッサAは、図示しないPCIe/Wrapperレジスタにアクセスして、PCIeブリッジコントローラ3のポート(EP)である該当ポートに対してリンクアップ済みか否かを判断する。
【0119】
例えば、プロセッサAは、UART(Universal Asynchronous Receiver Transmitter)経由でLINK_MONITORレジスタを参照して、他のプラットフォーム2−4が接続されるポートである該当ポートがリンクアップ済みか否かを判断する。ブリッジドライバ20は、LINK_MONITORレジスタが「0」の場合、リンクダウンと判断し、LINK_MONITORレジスタが「1」の場合、リンクアップ済みと判断する。
【0120】
そして、該当ポートがリンクアップ済みであると判断した場合、プラットフォーム2−1のプロセッサAは、ステップS1102において取得したアドレス空間に記憶される、送信先のプラットフォーム2−5の通信ステータスを参照して、PCIeブリッジコントローラ3と通信を行うことによって、送信先のプラットフォーム2−5のプロセッサEとの通信を実現する(ステップS1108)。
【0121】
このように、本実施形態にかかる情報処理システム1によれば、カーネルパニック等による突然の再起動が行われて通信エラーが発生しているプラットフォーム2との通信が行われることを防止できるので、情報処理システム1内のいずれかのプラットフォーム2における通信エラーの発生によって、他のプラットフォーム2においても通信エラーが発生することを抑制できる。
【0122】
上述の実施形態では、各部のI/OのインタフェースとしてPCIeを例に挙げて説明したが、インタフェースはPCIeに限定されない。例えば、各部のインタフェースは、データ転送バスによって、デバイス(周辺制御コントローラ)とプロセッサとの間でデータ転送を行える技術であればよい。データ転送バスは、1個の筐体等に設けられたローカルな環境(例えば、1つのシステムまたは1つの装置)で高速にデータを転送できる汎用のバスであってよい。インタフェースは、パラレルインターフェースおよびシリアルインターフェースのいずれであっても良い。
【0123】
I/Oインタフェースは、シリアル転送の場合、ポイント・ツー・ポイント接続ができ、データをパケットベースで転送可能な構成でよい。尚、I/Oインタフェースは、シリアル転送の場合、複数のレーンを有してよい。I/Oインタフェースのレイヤ構造は、パケットの生成及び復号を行うトランザクション層と、エラー検出等を行うデータリンク層と、シリアルとパラレルとを変換する物理層とを有してよい。また、I/Oインタフェースは、階層の最上位であり1または複数のポートを有するルートコンプレックス、I/Oデバイスであるエンドポイント、ポートを増やすためのスイッチ、および、プロトコルを変換するブリッジ等を含んでよい。インタフェースは、送信するデータとクロック信号とをマルチプレクサによって多重化して送信してもよい。この場合、受信側は、デマルチプレクサでデータとクロック信号を分離して良い。
【符号の説明】
【0124】
1 情報処理システム
2−1〜2−8,2 プラットフォーム
3 PCIeブリッジコントローラ
20 ブリッジドライバ
21−1〜21−8,21 プロセッサ
22 メモリ
221 通信バッファ
23 ストレージ
31 CPU
32 メモリ
33 インターコネクト
34−1〜34−8,34 スロット
35 レジスタ
900 共通エリア
901 ドライバステータスレジスタ
902−0〜902−7,902 共通レジスタ
【要約】
【課題】いずれかのプラットフォームにおいて突然の再起動が行われた場合に、突然の再起動が行われたプラットフォームに対して誤ってデータ通信が行われることを防止し、他のプラットフォームにおける通信エラーの発生を抑制する。
【解決手段】本発明の第1態様にかかる情報処理システムは、複数のプラットフォームと、当該複数のプラットフォームのそれぞれと通信可能に接続されかつ転送バスを用いて前記複数のプラットフォーム間での通信を中継する中継装置と、を備える。前記中継装置は、前記プラットフォームが通信可能な否かを示す通信ステータスを記憶する記憶領域を前記プラットフォーム毎に有するドライバステータスレジスタ、を備える。前記プラットフォームは、当該プラットフォーム自身の前記記憶領域に記憶される前記通信ステータスを更新し、かつ、前記記憶領域に記憶される前記通信ステータスを参照して、前記複数のプラットフォームのうち通信可能な前記プラットフォームと通信を行う通信ドライバを備える。
【選択図】図11
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11