(58)【調査した分野】(Int.Cl.,DB名)
第1プラットフォームと、第2プラットフォームと、前記第1プラットフォームおよび前記第2プラットフォームが接続可能な拡張バスを有する中継装置と、を備える情報処理システムであって、
前記第1プラットフォームは、
前記拡張バスを介した前記第1プラットフォームと前記第2プラットフォーム間での通信の異常を検出する通信異常監視部、を備え、
前記中継装置は、
前記拡張バスを介した前記第1プラットフォームと前記第2プラットフォーム間での通信を制御する通信制御マイコンと、
外部の電源から前記第2プラットフォームへの電源供給を制御し、前記拡張バスを介した前記第1プラットフォームと前記第2プラットフォーム間での通信の異常が検出された場合に、前記第2プラットフォームからの電気的な信号に基づいて、前記拡張バスを介した前記第1プラットフォームと前記第2プラットフォーム間での通信の異常が、ハードウェアによるものか、若しくはソフトウェアによるものかを判定し、その判定結果を前記第1プラットフォームに通知する電源制御マイコンと、
を備える情報処理システム。
前記電源制御マイコンは、前記第2プラットフォームからの電気的な信号に基づいて、前記拡張バスを介した前記第1プラットフォームと前記第2プラットフォーム間での通信の異常が、ハードウェアおよびソフトウェアによる複数の通信の異常の候補うち、いずれの異常であるかを判定する請求項1に記載の情報処理システム。
前記拡張バスを介した前記第1プラットフォームと前記第2プラットフォーム間での通信のハードウェアによる異常の候補には、前記第2プラットフォームが前記拡張バスに接続されていない状態が含まれる、請求項2に記載の情報処理システム。
前記拡張バスを介した前記第1プラットフォームと前記第2プラットフォーム間での通信のハードウェアによる異常の候補には、前記第2プラットフォームに電源供給されていない状態が含まれる、請求項2または3に記載の情報処理システム。
前記拡張バスを介した前記第1プラットフォームと前記第2プラットフォーム間での通信のソフトウェアによる異常の候補には、前記第2プラットフォームが実行するOSの起動状態の異常が含まれる、請求項2から4のいずれか一に記載の情報処理システム。
【発明を実施するための形態】
【0010】
以下、添付の図面を用いて、本実施形態にかかる中継装置を含む情報処理システムについて説明する。
【0011】
図1は、本実施形態にかかる情報処理システムの全体構成の一例を示す図である。
図1に示すように、本実施形態にかかる情報処理システム1は、複数のプラットフォーム2−1〜2−8、および中継装置3を有する。複数のプラットフォーム2−1〜2−8は、それぞれ中継装置3に接続されている。
【0012】
以下の説明では、複数のプラットフォーム2−1〜2−8を区別する必要がなく、任意のプラットフォームを示す場合には、プラットフォーム2と記載する。また、ここでは、情報処理システム1が、8つのプラットフォーム2−1〜2−8を有する例について説明するが、複数のプラットフォーム2を有するものであれば、これに限定するものではない。
【0013】
プラットフォーム2−1〜2−8は、情報処理システム1の制御部およびGUI(Graphical User Interface)として機能するホストPC(Personal Computer)や、AI(Artificial Intelligence)推論処理や画像処理等を実行する演算部である。
【0014】
具体的には、プラットフォーム2−1〜2−8は、プロセッサ21−1〜21−8を備える。以下の説明では、プロセッサ21−1〜21−8を区別する必要がなく、任意のプロセッサを示す場合には、プロセッサ21と記載する。プロセッサ21−1〜21−8は、それぞれ違うメーカ(ベンダ)から提供されたものであっても良いし、同じメーカから提供されたものであっても良い。
【0015】
例えば、プロセッサ21−1はA社から提供され、プロセッサ21−2はB社から提供され、プロセッサ21−3はC社から提供され、プロセッサ21−4はD社から提供され、プロセッサ21−5はE社から提供され、プロセッサ21−6はF社から提供され、プロセッサ21−7はG社から提供され、プロセッサ21−8はH社から提供されるものとする。
【0016】
また、中継装置3に搭載される各EP(End Point)に対しては、それぞれ異なるプラットフォーム2を接続しても良いし、各EPに対して1つのプラットフォーム2を接続し、プラットフォーム2側が複数のRC(Rood Complex)を用いて中継装置3と通信しても良い。
【0017】
次に、
図2を用いて、本実施形態にかかる情報処理システム1のハードウェア構成の一例について説明する。
図2は、本実施形態にかかる情報処理システムのハードウェア構成の一例を示す図である。以下の説明では、プラットフォーム2−1がホストPCとして機能し、プラットフォーム2−2〜2−8が、AI推論処理や画像処理等を実行する演算部として機能する例について説明する。
【0018】
まず、ホストPCとして機能するプラットフォーム2−1のハードウェア構成について説明する。
【0019】
プラットフォーム2−1は、
図2に示すように、プロセッサ21−1、表示部201、USB(Universal Serial Bus)ポート202、通信I/F203、記憶部204、およびメモリ205を有する。表示部201は、LCD(Liquid Crystal Display)等であり、各種情報を表示する。USBポート202は、プラットフォーム2−1と周辺機器とを接続するためのコネクタである。通信I/F203は、イーサネット(登録商標)等の通信規格に従って、LAN(Local Area Network)等のネットワークと通信可能とする。
【0020】
記憶部204は、HDD(Hard Disk Drive)やSSD(Solid State Drive)、SCM(Storage Class Memory)等の記憶装置であり、各種のデータを記憶する。メモリ205は、ROM(Read Only Memory)やRAM(Random Access Memory)等である。ROMは、各種のソフトウェアプログラムや当該ソフトウェアプログラム用のデータを記憶する。ROMに記憶されるソフトウェアプログラムは、プロセッサ21−1により読み込まれて実行される。RAMは、ROMに記憶されるソフトウェアプログラムを実行する際の作業領域として機能する。
【0021】
プロセッサ21−1は、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)等のプロセッサであり、プラットフォーム2−1全体を制御する。プロセッサ21−1は、マルチコアプロセッサであっても良いし、2以上のプロセッサの組合せであっても良い。
【0022】
次に、AI推論処理や画像処理等を実行する演算部として機能するプラットフォーム2−2〜2−8のハードウェア構成について説明する。
【0023】
プラットフォーム2−2は、
図2に示すように、プロセッサ21−2、USBポート211、および表示部212を有する。表示部212は、LCD等であり、各種情報を表示する。USBポート211は、プラットフォーム2−2と周辺機器とを接続するためのコネクタである。
【0024】
プロセッサ21−2は、CPU、MPU、DSP、ASIC、PLD、FPGA等のプロセッサであり、プラットフォーム2−2全体を制御する。プロセッサ21−2は、マルチコアプロセッサであっても良いし、2以上のプロセッサの組合せであっても良い。例えば、プロセッサ21−2は、CPU及びGPUの組み合わせであっても良い。
【0025】
ここでは、プラットフォーム2−2のハードウェア構成について説明したが、AI推論処理や画像処理等を実行する演算部として機能する他のプラットフォーム2−3〜2−8も同様のハードウェア構成を有する。
【0026】
次に、中継装置3のハードウェア構成について説明する。
【0027】
中継装置3は、例えば、
図2に示すように、複数のEPを1チップ内に有する中継装置である。中継装置3は、
図2に示すように、通信制御マイコン301、電源制御マイコン302、メモリ303、および複数のスロット305−1〜305−8を備える。そして、
図2に示すように、通信制御マイコン301、メモリ303、および複数のスロット305−1〜305−8は、内部バス304を介して互いに通信可能に接続されている。
【0028】
また、電源制御マイコン302は、
図2に示すように、信号線L1〜L8を介して、スロット305に接続されるプラットフォーム2−1〜2−8と接続される。ここで、信号線L1〜L8は、プラットフォーム2−1〜2−8から電源制御マイコン302に入力される信号を伝送する信号線である。
【0029】
スロット305−1〜305−8には、それぞれPCIeの規格を満たすように構成されたデバイスが接続される拡張スロット(拡張バス)の一例である。本実施形態では、スロット305−1〜305−8には、プラットフォーム2−1〜2−8が接続される。以下の説明では、スロット305−1〜305−8を区別する必要がなく、任意のスロットを示す場合には、スロット305と記載する。
【0030】
また、1つのスロット305に対して、1つのプラットフォーム2が接続されていても良いが、1つのスロット305に対して、複数のプラットフォーム2が接続されていても良い。さらに、1つのプラットフォーム2に対して複数のスロット305を割り当てることにより、当該プラットフォーム2は、広い通信帯域を用いた通信が可能となる。
【0031】
メモリ303は、例えば、ROMおよびRAMを含むメモリである。メモリ303のROMには、スロット305に接続される複数のプラットフォーム2間での通信制御に関わるソフトウェアプログラム等の各種のソフトウェアプログラム、このソフトウェアプログラム用のデータを記憶する。ROMに記憶されるソフトウェアプログラムは、通信制御マイコン301により読み込まれて実行される。メモリ303のRAMは、メモリ303のROMに記憶されるソフトウェアプログラムを実行する際の作業領域として機能する。
【0032】
また、プラットフォーム2には、各スロット305に対応させてメモリ22等にメモリ領域が設けられ、当該メモリ領域には、スロット305の数だけ分割された複数の記憶領域が設定され、各記憶領域はいずれかのスロット305に対応付けられている。中継装置3は、スロット305毎に設けられる記憶領域のアドレスに基づいてプラットフォーム2間のデータ転送を行う。
【0033】
通信制御マイコン301は、CPU、MPU、DSP、ASIC、PLD、FPGA等のプロセッサを含み、当該プロセッサが、スロット305を介したプラットフォーム2間での通信を制御する。通信制御マイコン301は、複数のプロセッサの組合せを含んでいても良い。そして、通信制御マイコン301は、メモリ303に記憶されるソフトウェアプログラムを実行することによって、スロット305に接続されるプラットフォーム2間での通信を実現する。
【0034】
電源制御マイコン302は、CPU、MPU、DSP、ASIC、PLD、FPGA等のプロセッサを含み、当該プロセッサが、スロット305に接続されるプラットフォーム2に対する電源供給を制御する。電源制御マイコン302のプロセッサは、複数のプロセッサの組合せを含んでいても良い。そして、電源制御マイコン302のプロセッサは、当該電源制御マイコン302が有するメモリに記憶されるソフトウェアプログラムを実行することによって、電源ユニット(不図示)から、スロット305に接続されるプラットフォーム2への電源の供給を実行する。
【0035】
本実施形態では、中継装置3は、プラットフォーム2間での通信を高速化するために、PCIeを用いて、
図2に示すように、各プラットフォーム2に備えられるプロセッサ21をRCとして動作させ、デバイスとして動作するEP間でのデータの転送を実現する。
【0036】
具体的には、情報処理システム1では、各プラットフォーム2のプロセッサ21を、PCIeのRCとして動作させる。また、各プラットフォーム2のプロセッサ21に対して、中継装置3(すなわち、各プラットフォーム2が接続されるスロット305)をEPとして動作させる。
【0037】
ここで、中継装置3をプラットフォーム2のプロセッサ21に対してEPとして接続する手法としては、既知の様々な手法を用いて実現できる。例えば、中継装置3は、プラットフォーム2との接続時に、EPとして機能することを示す信号を通知することによって、EPとしてプラットフォーム2と接続される。
【0038】
中継装置3は、EPtоEP(End Point to End Point)でデータをトンネリングさせて、複数のRCにデータを転送する。プラットフォーム2のプロセッサ21間の通信は、PCIeのトランザクションが発生したときに論理的に接続され、1つのプロセッサ21にデータの転送が集中しないときは、それぞれのプロセッサ21間で並行してデータの転送が可能である。
【0039】
次に、
図3を用いて、本実施形態にかかる情報処理システム1のプラットフォーム2のソフトウェア構成の一例について説明する。
図3は、本実施形態にかかる情報処理システムのプラットフォームのソフトウェア構成の一例を示す図である。
【0040】
プラットフォーム2−1は、例えば、Windows(登録商標)をOS(Operating System)として、このOS上において各種ソフトウェアプログラムを実行する。プラットフォーム2−2,2−3は、例えば、Linux(登録商標)をOSとし、このOS上において各種ソフトウェアプログラムを実行する。
【0041】
プラットフォーム2には、ブリッジドライバ20が設けられ、当該ブリッジドライバ20を介して中継装置3および他のプラットフォーム2との間で通信を行う。各プラットフォーム2は、プロセッサ21およびメモリを有する。そして、プロセッサ21が、メモリに記憶されるOSや各種プログラム、ドライバ等を実行することにより、プラットフォーム2が有する各種の機能を実現する。
【0042】
次に、
図4を用いて、中継装置3に接続されるプラットフォーム2間における通信処理の一例について説明する。
図4は、本実施形態にかかる情報処理システムにおけるプラットフォーム間における通信処理の一例を説明するための図である。ここでは、プラットフォーム2−1のプロセッサ21−1と、プラットフォーム2−2のプロセッサ21−2間での通信処理の一例について説明する。
【0043】
送信元のプラットフォーム2−1は、RCであるプロセッサ21−1において生成されるデータが、ソフトウェア、トランザクション層、データリンク層、および物理層(PHY)を順次転送され、物理層において中継装置3の物理層に転送される。
【0044】
中継装置3は、送信元のプラットフォーム2−1から転送されてきたデータを、物理層、データリンク層、トランザクション層、およびソフトウェアを順次転送され、その後、送信先のプラットフォーム2−2のRCに対応するEPにトンネリングにより転送される。すなわち、中継装置3においては、EP間でデータをトンネリングさせることで、1つのRC(プロセッサ21−1)から他のRC(プロセッサ21−2)にデータが転送される。
【0045】
送信先のプラットフォーム2−2は、中継装置3から転送されてきたデータが、物理層(PHY)、データリンク層、トランザクション層、およびソフトウェアに順次転送され、その後、送信先のプラットフォーム2−2のプロセッサ21−2に転送される。本実施形態の情報処理システム1では、プラットフォーム2間の通信は、PCIeのトランザクションが発生した時に論理的に実現される。
【0046】
中継装置3が有する複数のスロット305のうち1つに接続されたプラットフォーム2に対して、複数のプラットフォーム2からのデータの転送が集中しない場合には、異なる任意の複数組のプラットフォーム2間において並行してデータの転送を実行することも可能である。例えば、プラットフォーム2−1のプロセッサ21−1に対して、プラットフォーム2−2のプロセッサ21−2およびプラットフォーム2−3のプロセッサ21−3が通信する場合には、中継装置3は、プラットフォーム2−2のプロセッサ21−2およびプラットフォーム2−3のプロセッサ21−3による通信をシリアルに処理する。
【0047】
一方、異なるプラットフォーム2のプロセッサ21同士が通信し、特定のプラットフォーム2のプロセッサ21に通信が集中しない場合には、中継装置3は、プラットフォーム2間の通信を並行して処理することも可能である。
【0048】
次に、
図5および
図6を用いて、プラットフォーム2のプロセッサ21から他のプラットフォーム2のプロセッサ21の見え方について説明する。
図5および
図6は、本実施形態にかかる情報処理システムにおける任意のプラットフォームからの他のプラットフォームの見え方を例示する図である。
【0049】
各プラットフォーム2のプロセッサ21間で通信が行なわれている状態において、各プロセッサ21が実行するOS(例えば、Windows(登録商標)のデバイスマネージャ)からは、中継装置3しか見えないため、接続先の他のプラットフォーム2のプロセッサ21を直接管理する必要がない。すなわち、中継装置3のデバイスドライバが、中継装置3の先に接続されたプラットフォーム2のプロセッサ21を管理する。
【0050】
そのため、送信元、送信先それぞれのプラットフォーム2のプロセッサ21を動作させるためのデバイスドライバを準備する必要がなく、中継装置3のデバイスドライバで中継装置3に対して通信処理を行なうだけで、プラットフォーム2間の通信を実現することができる。
【0051】
次に、
図7を用いて、情報処理システム1における中継装置3を介したプラットフォーム2間のデータ転送方法を説明する。
図7は、本実施形態にかかる情報処理システムにおける中継装置を介したプロセッサ間のデータ転送方法の一例を説明するための図である。
【0052】
この
図7に示す例においては、スロット#0に接続されたプラットフォーム2−1からスロット#4に接続されたプラットフォーム2−5にデータを転送する場合について説明する。
【0053】
送信元のプラットフォーム2−1は、ソフトウェア等によって送信されるデータ(以下、送信データという)を、プラットフォーム2−1に備えられるストレージ23等からプラットフォーム2−1のメモリ領域35に格納する(ステップS701)。メモリ領域35は、転送されるデータが一時的に格納される通信バッファの一部であっても良い。メモリ領域35は、プラットフォーム2のそれぞれに、メモリ22等と同じ大きさで設けられた領域である。メモリ領域35は、スロット305の数に応じて分割されている。メモリ領域35の分割された記憶領域は、いずれかのスロット305に対応付けられている。例えば、メモリ領域35内のSlot♯0で示す記憶領域は、Slot♯0に接続されたプラットフォーム2−1に対応付けられ、メモリ領域35内にSlot♯4で示す記憶領域は、Slot♯4に接続されたプラットフォーム2−5に対応付けられている。プラットフォーム2−1は、メモリ領域35のうち、送信先のスロット305に割り当てられた領域(ここでは、Slot♯4)に送信データを格納する。
【0054】
ブリッジドライバ20は、プラットフォーム2のメモリ領域35の記憶領域に基づいて、送信先のスロット305を示すスロット情報と、送信先のメモリ領域35における分割領域内におけるアドレスを示すアドレス情報とを取得または生成する(ステップS702)。
【0055】
送信元のEPにおいて、ブリッジドライバ20は、スロット情報と、アドレス情報と、送信データとを含む転送データを中継装置3に渡す(ステップS703)。これにより、中継装置3は、スロット情報に基づいてEPtoEPにより送信元のスロット305と送信先のスロット305とを接続することにより、転送データを送信先のプラットフォーム2−4に転送する(ステップS704)。送信先のブリッジドライバ20は、スロット情報およびアドレス情報に基づいて、送信先のプラットフォーム2のメモリ領域35のSlot♯4に対応する記憶領域内のアドレス情報が示すアドレスの領域に送信データ(または転送データ)を格納する(ステップS705)。
【0056】
送信先のプラットフォーム2−5において、例えば、プログラムが、メモリ領域35に格納された送信データを読み出して、メモリ(ローカルメモリ)22やストレージ23に移動させる(ステップS706、ステップS707)。
【0057】
以上のようにして、送信元のプラットフォーム2−1から送信先のプラットフォーム2−5にデータ(転送データ)が転送される。
【0058】
ところで、上述の構成においては、スロット305(拡張バス)を介した、プラットフォーム2−1(ホストPC)と、プラットフォーム2−2〜2−8(AI推論処理や画像処理等を実行する演算部)との間での通信に異常が発生した場合に、ホストPCと演算部間での通信の異常が、ハードウェアによるものか、若しくはソフトウェアによるものかを判定することが困難である。そのため、拡張バスを介したホストPCと演算部間での通信の異常の要因に合ったエラー処理(リカバリ)を実行することができない。
【0059】
そこで、本実施形態では、中継装置3の電源制御マイコン302に以下のような機能を持たせることによって、ホストPCと演算部間での通信に異常が発生した場合に、当該通信の異常が、ハードウェアによるものか、若しくはソフトウェアによるものかを判定可能とし、拡張バスを介したホストPCと演算部間の通信の異常の要因に合った適切なエラー処理を実行可能とすることを実現する。
【0060】
図8は、本実施形態にかかる情報処理システム1の機能構成の一例を示すブロック図である。
図8に示すプラットフォーム2−1(ホストPC)の機能は、プロセッサ21−1がメモリ205に記憶されるソフトウェアプログラムを読み出して実行した結果として実現される。また、
図8に示すプラットフォーム(演算部)2−2〜2−8の機能は、プロセッサ21−2がメモリ205に記憶されるOSに組み込まれるソフトウェアプログラムを読み出して実行した結果として実現される。また、
図8に示す中継装置3の機能は、電源制御マイコン302が有するプロセッサが、当該電源制御マイコン302が有するメモリに記憶されるソフトウェアプログラムを読み出して実行した結果として実現される。
【0061】
まず、プラットフォーム2−1の機能構成について説明する。
【0062】
図8に示すように、本実施形態にかかるプラットフォーム2−1は、機能的構成として、通信異常監視部801を有する。通信異常監視部801は、スロット305を介したプラットフォーム2−1(ホストPC)と他のプラットフォーム2−2〜2−8(演算部)間での通信(仮想LAN環境における、ホストPCと演算部間の通信)の異常を検出する。本実施形態では、通信異常監視部801は、プラットフォーム2−1と他のプラットフォーム2−2〜2−8間での通信の異常を検出した場合、当該通信の異常の要因の判定を指示する信号である判定指示信号を、GPIO(General Purpose Input Output)等の専用の端子に接続される信号線L1を介して、中継装置3に出力する。
【0063】
また、通信異常監視部801は、信号線L1を介して、中継装置3から、検出した通信の異常の要因の判定結果が通知されると、通知された判定結果に応じたエラー処理を実行する。ここで、エラー処理としては、プラットフォーム2のスロット305への接続状態の確認、外部の電源ユニットからプラットフォーム2への電源供給の状態の確認、プラットフォーム2のOSの起動状態の確認またはリブート等である。
【0064】
本実施形態では、通信異常監視部801は、中継装置3から、プラットフォーム2−1と、その他の全てのプラットフォーム2−2〜2−8間での通信の異常の要因の判定結果が通知される。そして、通信異常監視部801は、通知された通信の異常の要因のうち、異常が検出されたプラットフォーム2間との通信の異常の要因を特定し、当該特定した通信の異常の要因に応じたエラー処理を実行する。
【0065】
次に、プラットフォーム2−2の機能構成について説明する。ここで、プラットフォーム2−2の機能構成について説明するが、演算部として機能する他のプラットフォーム2−3〜2−8も同様の機能構成を有する。
【0066】
図8に示すように、本実施形態にかかるプラットフォーム2−2は、機能的構成として、OS起動状態検出部802を有する。OS起動状態検出部802は、電源制御マイコン302によって外部の電源ユニットからプラットフォーム2−2に対して電源供給が行われ、プラットフォーム2−2のOSの起動が開始された場合に、そのOSが起動したか否かを検出する。
【0067】
そして、OS起動状態検出部802は、プラットフォーム2−2のOSが起動した場合には、プラットフォーム2−2が起動したことを示す起動信号を、GPIO等の専用の端子に接続される信号線L2を介して、中継装置3に出力する。例えば、OS起動状態検出部802は、プラットフォーム2−2のOSが正常に起動した場合には、起動信号をHighとし、プラットフォーム2−2のOSの起動に異常が検出された場合には、起動信号をLowのままとする。
【0068】
次に、中継装置3の機能構成について説明する。
【0069】
図8に示すように、本実施形態にかかる中継装置3の電源制御マイコン302は、機能的構成として、電源供給制御部810と、異常判定部811と、異常通知部812と、を有する。電源供給制御部810は、プラットフォーム2への電源供給を制御する。本実施形態では、電源供給制御部810は、図示しない外部の電源ユニットに対して電源制御信号を出力することにより、当該電源ユニットからプラットフォーム2への電源供給を制御する。ここで、電源制御信号は、プラットフォーム2への電源供給の開始またはプラットフォーム2への電源供給の遮断を指示する信号である。
【0070】
異常判定部811は、通信異常監視部801によって通信の異常が検出された場合に、プラットフォーム2−2〜2−8からの電気的な信号に基づいて、当該通信の異常が、ハードウェアによるものか、若しくはソフトウェアによるものかを判定する。本実施形態では、異常判定部811は、通信異常監視部801によって通信に異常が検出されて、GPIO等の専用の端子を介して、通信異常監視部801から、検出された通信の異常の要因の判定を指示する判定指示信号が入力された場合に、当該通信の異常が、ハードウェアによるものか、若しくはソフトウェアによるものかを判定する。
【0071】
また、本実施形態では、異常判定部811は、GPIO等の専用の端子に接続される信号線L1を介してプラットフォーム2−2から入力される電気的な信号に基づいて、通信異常監視部801により検出された通信の異常が、ハードウェアおよびソフトウェアによる複数の通信の異常の候補のうち、いずれの異常であるかを判定する。これにより、プラットフォーム2−1とプラットフォーム2−2〜2−8間での通信の異常の要因が複数ある場合であっても、当該通信の異常の要因を判定可能となる。
【0072】
ここで、ハードウェアによる通信の異常の候補には、スロット305−2〜305−8に対してプラットフォーム2−2〜2−8が接続されていない状態が含まれる。これにより、プラットフォーム2−1とプラットフォーム2−2〜2−8間での通信の異常の要因が、スロット305に対してプラットフォーム2−2〜2−8が接続されていないことによるものであることを判定可能となる。本実施形態では、異常判定部811は、GPIO等の専用の端子に接続される信号線L2〜L8に電圧が印加されていない場合に、スロット305−2〜305−8に対してプラットフォーム2−2〜2−8が接続されていないことによる通信の異常と判定する。
【0073】
また、ハードウェアによる通信の異常の候補には、プラットフォーム2−2〜2−8へ電源供給が行われていない状態が含まれる。これにより、プラットフォーム2−1とプラットフォーム2−2〜2−8間での通信の異常の要因が、プラットフォーム2−2〜2−8に電源供給されていないことによるものであることを判定可能となる。本実施形態では、異常判定部811は、GPIO等の専用の端子を介して、プラットフォーム2−2〜2−8に対して電源のオンを指示した後、予め設定された時間内に、プラットフォーム2−2〜2−8から、OSが起動したことを通知する信号が入力されなかった場合に、プラットフォーム2−2〜2−8へ電源供給が行われていないことによる通信の異常と判定する。
【0074】
一方、ソフトウェアによる通信の異常の候補には、プラットフォーム2−2〜2−8により実行されるOSの起動状態に異常がある状態が含まれる。これによりプラットフォーム2−1とプラットフォーム2−2〜2−8間での通信の異常の要因が、プラットフォーム2−2〜2−8のOSが正常に起動していないことによるものであることを判定可能となる。本実施形態では、異常判定部811は、GPIO等の専用に端子に接続される信号線L1〜L8を介して、プラットフォーム2−2〜2−8から、プラットフォーム2−2〜2−8のOSが起動したことを示す起動信号が入力されない場合に、OSの起動状態に異常があることによる通信の異常と判定する。例えば、異常判定部811は、プラットフォーム2−2〜2−8から入力される起動信号がHighにならずに、Lowのままである場合に、OSの起動状態に異常があることによる通信の異常と判定する。
【0075】
本実施形態では、異常判定部811は、予め設定された周期で、プラットフォーム2−2〜2−8から入力される電気的な信号に基づいて、プラットフォーム2−1とプラットフォーム2−2〜2−8間での通信の異常が、ハードウェアによるものか、若しくはソフトウェアによるものかを判定する。そして、異常判定部811は、その判定結果を、図示しないレジスタに保存する。
【0076】
また、本実施形態では、異常判定部811は、通信異常監視部801から、判定指示信号が入力された場合、プラットフォーム2−1とプラットフォーム2−2〜2−8間での通信の異常が、ハードウェアによるものか、若しくはソフトウェアによるものかを判定し直す。そして、異常判定部811は、その判定結果を、プラットフォーム2−1とプラットフォーム2−2〜2−8間での通信の異常の要因の最新の判定結果として、図示しないレジスタに保存する。
【0077】
また、本実施形態では、異常判定部811は、プラットフォーム2−1とプラットフォーム2−2〜2−8間での通信の異常の要因を判定する際、プラットフォーム2−1とその他の全てのプラットフォーム2−2〜2−8間での通信の異常の要因を判定する。
【0078】
さらに、本実施形態では、通信の異常の要因を判定する際、異常判定部811は、まず、各スロット305に対してプラットフォーム2が接続されていない状態による通信の異常か否かを判定する。そして、スロット305に対してプラットフォーム2が接続されていない状態による通信の異常と判定した場合、異常判定部811は、そのプラットフォーム2については、その判定結果を図示しないレジスタに保存する。
【0079】
次いで、異常判定部811は、スロット305に対してプラットフォーム2が接続されていない状態による通信の異常と判定されなかったプラットフォーム2について、プラットフォーム2へ電源供給が行われていない状態によるものか否かを判定する。そして、プラットフォーム2へ電源供給が行われていない状態による通信の異常と判定した場合、異常判定部811は、そのプラットフォーム2については、その判定結果を図示しないレジスタに保存する。
【0080】
最後に、異常判定部811は、プラットフォーム2へ電源供給が行われていない状態による通信の異常と判定されなかったプラットフォーム2について、プラットフォーム2により実行されるOSの起動状態に異常がある状態によるものか否かを判定する。そして、プラットフォーム2により実行されるOSの起動状態に異常がある状態による通信の異常と判定した場合、異常判定部811は、そのプラットフォーム2について、その判定結果を図示しないレジスタに保存する。
【0081】
すなわち、異常判定部811は、スロット305に対してプラットフォーム2が接続されていない状態による通信の異常であるか、プラットフォーム2へ電源供給が行われていない状態による通信の異常であるか、および、プラットフォーム2により実行されるOSの起動状態に異常がある状態による通信の異常であるかの順に、通信の異常の要因を判定する。異常判定部811は、いずれの通信の異常の要因には該当しなかったプラットフォーム2については、正常であること、または通信の異常の要因が不明であることを、図示しないレジスタに、通信の異常の判定結果として保存する。
【0082】
異常通知部812は、プラットフォーム2−1(ホストPC)とプラットフォーム2−2〜2−8(演算部)間の通信の異常が、ハードウェアによるものか、若しくはソフトウェアによるものかの判定結果を、プラットフォーム2−1に通知する。
【0083】
これにより、スロット305を介したプラットフォーム2−1(ホストPC)とプラットフォーム2−2〜2−8(演算部)間での通信に異常が発生した場合に、当該通信の異常が、ハードウェアによるものか、若しくはソフトウェアによるものかを判定可能にすることを実現する。その結果、スロット305を介したプラットフォーム2−1とプラットフォーム2−2〜2−8間の通信の異常の要因に合った適切なエラー処理を実行できる。本実施形態では、異常通知部812は、図示しないレジスタに記憶される、各プラットフォーム2の通信の異常の要因の最新の判定結果を、信号線L1を介して、プラットフォーム2−1に通知する。
【0084】
次に、
図9を用いて、本実施形態にかかる情報処理システム1における通信の異常の判定処理の流れの一例について説明する。
図9は、本実施形態にかかる情報処理システムにおける通信の異常の判定処理の流れの一例を示すシーケンス図である。
【0085】
プラットフォーム2−1において、スロット305を介したプラットフォーム2−1と他のプラットフォーム2−2〜2−8間の通信が開始されると、プラットフォーム2−1の通信異常監視部801は、スロット305を介したプラットフォーム2−1と他のプラットフォーム2−2〜2−8間の通信の異常の検出を開始する(ステップS901)。
【0086】
そして、スロット305を介したプラットフォーム2−1と他のプラットフォーム2−2〜2−8間の通信の異常を検出した場合、通信異常監視部801は、I
2C(登録商標)等のシリアル通信によって信号線L1を介して、判定指示信号を、中継装置3に通知する(ステップS902)。
【0087】
判定指示信号が通知されると、中継装置3の異常判定部811は、プラットフォーム2−2〜2−8から入力される電気的な信号に基づいて、当該通信の異常が、ハードウェアによるものか、若しくはソフトウェアによるものかを判定する(ステップS903)。すなわち、異常判定部811は、プラットフォーム2−1と他のプラットフォーム2−2〜2−8間の通信の異常の要因を判定する。
【0088】
そして、中継装置3の異常通知部812は、プラットフォーム2−1と他のプラットフォーム2−2〜2−8間の通信の異常が、ハードウェアによるものか、若しくはソフトウェアによるものかの判定結果を、I
2C(登録商標)等のシリアル通信による信号線L1を介して、プラットフォーム2−1に通知する(ステップS904)。すなわち、異常通知部812は、プラットフォーム2−1と他のプラットフォーム2−2〜2−8間の通信の異常の要因を通知する。
【0089】
このように、本実施形態にかかる情報処理システム1によれば、スロット305を介したプラットフォーム2−1(ホストPC)とプラットフォーム2−2〜2−8(演算部)間での通信に異常が発生した場合に、当該通信の異常が、ハードウェアによるものか、若しくはソフトウェアによるものかを判定可能にすることを実現する。その結果、スロット305を介したプラットフォーム2−1とプラットフォーム2−2〜2−8間の通信の異常の要因に合った適切なエラー処理を実行できる。
【0090】
また、本実施形態にかかる情報処理システム1によれば、演算部からの電気的な信号に基づいて、スロット305を介したホストPCと演算部間での通信の異常が、ハードウェアおよびソフトウェアによる複数の通信の異常の候補うち、いずれの異常であるかを判定する。これにより、ホストPCと演算部間での通信の異常の要因が複数ある場合であっても、当該通信の異常の要因を判定可能となる。
【0091】
また、本実施形態にかかる情報処理システム1によれば、スロット305を介したホストPCと演算部間での通信のハードウェアによる異常の候補には、演算部がスロット305に接続されていない状態が含まれる。これにより、ホストPCと演算部間での通信の異常の要因が、スロット305に対して演算部が接続されていないことによるものであることを判定可能となる。
【0092】
また、本実施形態にかかる情報処理システム1によれば、スロット305を介したホストPCと演算部間での通信のハードウェアによる異常の候補には、演算部に電源供給されていない状態が含まれる。これにより、ホストPCと演算部間での通信の異常の要因が、演算部に電源供給されていないことによるものであることを判定可能となる。
【0093】
また、本実施形態にかかる情報処理システム1によれば、スロット305を介したホストPCと演算部間での通信のソフトウェアによる異常の候補には、演算部が実行するOSの起動状態の異常が含まれる。これにより、ホストPCと演算部間での通信の異常の要因が、演算部のOSが正常に起動していないことによるものであることを判定可能となる。
【0094】
上述の実施形態では、各部のI/OインターフェースとしてPCIeを例に挙げて説明したが、I/OインターフェースはPCIeに限定されない。例えば、各部のI/Oインターフェースは、データ転送バスによって、デバイス(周辺制御コントローラ)とプロセッサとの間でデータ転送を行える技術であればよい。データ転送バスは、1個の筐体等に設けられたローカルな環境(例えば、1つのシステムまたは1つの装置)で高速にデータを転送できる汎用のバスであってよい。I/Oインターフェースは、パラレルインターフェース及びシリアルインターフェースのいずれであってもよい。
【0095】
I/Oインターフェースは、ポイント・ツー・ポイント接続ができ、データをパケットベースでシリアル転送可能な構成でよい。尚、I/Oインターフェースは、シリアル転送の場合、複数のレーンを有してよい。I/Oインターフェースのレイヤー構造は、パケットの生成及び復号を行うトランザクション層と、エラー検出等を行うデータリンク層と、シリアルとパラレルとを変換する物理層とを有してよい。また、I/Oインターフェースは、階層の最上位であり1または複数のポートを有するルート・コンプレックス、I/Oデバイスであるエンド・ポイント、ポートを増やすためのスイッチ、及び、プロトコルを変換するブリッジ等を含んでよい。I/Oインターフェースは、送信するデータとクロック信号とをマルチプレクサによって多重化して送信してもよい。この場合、受信側は、デマルチプレクサでデータとクロック信号を分離してよい。
【解決手段】情報処理システムは、第1プラットフォームと、第2プラットフォームと、第1プラットフォームおよび第2プラットフォームが接続可能な拡張バスを有する中継装置と、を備える。第1プラットフォームは、拡張バスを介した第1プラットフォームと第2プラットフォーム間での通信の異常を検出する通信異常監視部を備える。中継装置は、拡張バスを介した通信を制御する通信制御マイコンと、外部の電源から第2プラットフォームへの電源供給を制御し、拡張バスを介した通信の異常が検出された場合に、第2プラットフォームからの電気的な信号に基づいて、通信の異常が、ハードウェアによるものか、ソフトウェアによるものかを判定し、その判定結果を第1プラットフォームに通知する電源制御マイコンと、を備える。