(57)【特許請求の範囲】
【請求項１】
電源投入時の挿抜である活性挿抜に対応した第１の接続部を有する第１の情報処理装置と、複数の第２の情報処理装置とを中継装置を介して通信可能に接続した情報処理システムであって、
前記中継装置は、
前記中継装置の再起動時にも前記第１の情報処理装置及び前記第２の情報処理装置に電力を供給する電源制御ユニットと、
通信障害を検出した場合に前記中継装置を再起動する第２の再起動部と、
前記中継装置の再起動を検出した場合に、再起動の検知通知を、前記第２の情報処理装置に送信する再起動検出部と、を備え、
前記第２の情報処理装置は、
前記中継装置と接続する第２の接続部と、
前記再起動の検知通知によって前記中継装置の再起動を検出した場合に、前記第２の情報処理装置の再起動を実行する第１の再起動部と、を備え、
前記第１の情報処理装置は、
前記中継装置と接続する前記第１の接続部と、
再起動した前記中継装置を検出する第１の検出部と、
前記第１の検出部が前記中継装置を検出した場合に、前記中継装置を介した通信に関する設定を初期化する初期化部と、
を備える情報処理システム。
【請求項２】
前記第１の情報処理装置は、前記第１の情報処理装置及び前記第２の情報処理装置と、前記中継装置との接続を切断する否かを切り替える表示を非表示設定に変更する設定変更部を更に備える、
請求項１に記載の情報処理システム。
【請求項３】
前記電源制御ユニットは、
前記中継装置が再起動したことを検出する第２の検出部を更に備え、
前記第１の情報処理装置は、
前記中継装置が再起動したことを示す情報を取得する取得部を更に備える、
請求項１又は２に記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システムに関する。
【背景技術】
【０００２】
従来、複数の情報処理装置を中継装置に接続することで情報処理装置間のデータ通信を行う情報処理システムが提案されている。
【０００３】
さらには、情報処理システムにおいては、一つの装置内に、複数の情報処理装置に加えて、中継装置を内蔵することで、複数の情報処理装置間で中継装置を介して通信を行う技術も提案されている。当該情報処理システムでは、処理するデータに応じて様々な種類の情報処理装置が含まれている。このような情報処理システムにおいて、中継装置は、障害等が発生した場合に再起動する事がある。このような場合に、中継装置を介した通信の継続するために、当該情報処理システム内の情報処理装置は、中継装置の再起動に合わせて、初期化等の処理を行うことが求められる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−２７５８１８号公報
【特許文献２】特開２００７−２７４３７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、情報処理システムにおいては、活性挿抜（例えば、ＨＰＤ（Hot  Plug  Detect））の対応／非対応など様々な情報処理装置が含まれているため、中継装置が再起動した場合に、情報処理装置に応じた処理を行う必要がある。
【０００６】
本発明は、上記に鑑みてなされたものであって、情報処理装置間で中継装置を介した通信を継続することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の第１態様に係る情報処理システムは、電源投入時の挿抜である活性挿抜に対応した第１の接続部を有する第１の情報処理装置と、複数の第２の情報処理装置とを中継装置を介して通信可能に接続した情報処理システムであって、前記中継装置は、前記中継装置の再起動時にも前記第１の情報処理装置及び前記第２の情報処理装置に電力を供給する電源制御ユニットと、通信障害を検出した場合に前記中継装置を再起動する第２の再起動部と、前記中継装置の再起動を検出した場合に、再起動の検知通知を、前記第２の情報処理装置に送信する再起動検出部と、を備え、前記第２の情報処理装置は、前記中継装置と接続する第２の接続部と、前記再起動の検知通知によって前記中継装置の再起動を検出した場合に、前記第２の情報処理装置の再起動を実行する第１の再起動部と、を備え、前記第１の情報処理装置は、前記中継装置と接続する前記第１の接続部と、再起動した前記中継装置を検出する第１の検出部と、前記第１の検出部が前記中継装置を検出した場合に、前記中継装置を介した通信に関する設定を初期化する初期化部と、を備える。
【発明の効果】
【０００８】
本発明に係る情報処理システムは、中継装置を介した通信ができなくなってしまうことを防止するという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、本実施例に係る中継装置内蔵コンピュータの全体構成の一例を示す図である。
【図２】図２は、中継装置内蔵コンピュータの各装置のハードウェア構成の一例を示す図である。
【図３】図３は、電源制御ユニットのハードウェア構成の一例を示す図である。
【図４】図４は、本実施例に係るプラットフォーム間の通信処理の一例を説明するための図である。
【図５】図５は、中継装置内蔵コンピュータが有する各部の機能の一例を示す機能ブロック図である。
【図６】図６は、本実施例に係る復旧処理の一例を示すシーケンス図である。
【発明を実施するための形態】
【００１０】
以下に、本発明に係る情報処理システムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１１】
図１は、本実施例に係る中継装置内蔵コンピュータ１の全体構成の一例を示す図である。中継装置内蔵コンピュータ１は、電源投入時の挿抜である活性挿抜に対応したインタフェースを有するプラットフォーム１０−１と、複数のプラットフォーム１０−２〜１０−８とを中継装置３０を介して通信可能に接続した情報処理システムである。図１に示すように、実施例に係る中継装置内蔵コンピュータ１は、プラットフォーム１０−１〜１０−８と、中継装置３０とを備えている。
【００１２】
プラットフォーム１０−１〜１０−８は、中継装置３０を介して、通信可能に接続されている。プラットフォーム１０−１〜１０−８は、例えば、中継装置３０が設けられたボード上のスロットに挿入される。また、複数のスロットのうち、何れかのスロットは、プラットフォーム１０−１〜１０−８が挿入されていない空き状態であってもよい。以下の説明では、各プラットフォーム１０−１〜１０−８を区別する必要がなく、任意のプラットフォーム１０−１〜１０−８を示す場合には、プラットフォーム１０と記載する。
【００１３】
プラットフォーム１０−１は、第１の情報処理装置の一例である。プラットフォーム１０−１は、プラットフォーム１０−２〜１０−８を管理して、プラットフォーム１０−２〜１０−８に各種処理を実行させるメインの情報処理装置である。
【００１４】
プラットフォーム１０−１には、モニタ２１と、入力装置２２とが接続されている。モニタ２１は、例えば液晶表示装置等の各種画面を表示する。入力装置２２は、例えばキーボードやマウス等の各種操作を受け付ける。
【００１５】
プラットフォーム１０−２〜１０−８は、第２の情報処理装置の一例である。プラットフォーム１０−２〜１０−８は、プラットフォーム１０−１の要求に基づいて、例えばＡＩ（Artificial  Intelligence）推論処理や画像処理等を実行するサブの情報処理装置である。また、プラットフォーム１０−２〜１０−８は、それぞれが異なる機能を有していてもよいし、複数のプラットフォーム１０毎に機能を有していてもよい。
【００１６】
プラットフォーム１０−１〜１０−８は、ホスト側として動作可能なルートコンプレックス（ＲＣ：Root  Complex）１１−１〜１１−８有する。以下の説明では、各ルートコンプレックス１１−１〜１１−８を区別する必要がなく、任意のルートコンプレックス１１−１〜１１−８を示す場合には、ルートコンプレックス１１と記載する。
【００１７】
ルートコンプレックス１１は、中継装置３０の各エンドポイント３１−１〜３１−８との通信を実行する。すなわち、プラットフォーム１０と中継装置３０とは、ＰＣＩｅ（Peripheral  Component  Interconnect  Express）等の通信規格により通信可能に接続される。プラットフォーム１０と中継装置３０とは、ＰＣＩｅに限らず他の通信規格により接続されていてもよい。
【００１８】
中継装置３０は、複数のエンドポイント（ＥＰ：End  Point）３１−１〜３１−８を有する。また、中継装置３０は、エンドポイント３１−１〜３１−８に接続されたルートコンプレックス１１を有する複数のプラットフォーム１０間での通信を中継する。
【００１９】
エンドポイント３１−１〜３１−８は、プラットフォーム１０のルートコンプレックス１１との通信を実行する。以下の説明では、各エンドポイント３１−１〜３１−８を区別する必要がなく、任意のエンドポイント３１−１〜３１−８を示す場合には、エンドポイント３１と記載する。
【００２０】
次に、中継装置内蔵コンピュータ１の各装置のハードウェア構成について説明する。図２は、中継装置内蔵コンピュータ１の各装置のハードウェア構成の一例を示す図である。ここでは、プラットフォーム１０−１のハードウェア構成を例に説明する。しかし、プラットフォーム１０−２〜１０−８も同様の構成になっている。
【００２１】
プラットフォーム１０−１は、ＡＩ処理や画像処理等の演算処理を行なうコンピュータである。プラットフォーム１０は、ルートコンプレックス１１−１と、プロセッサ１２−１と、メモリ１３−１と、記憶部１４−１と、通信部１５−１とを備える。また、これらは、バスを介して通信可能に接続される。
【００２２】
プロセッサ１２−１は、プラットフォーム１０−１全体を制御する。プロセッサ１２−１は、マルチプロセッサであってもよい。また、プロセッサ１２−１は、例えばＣＰＵ（Central  Processing  Unit），ＭＰＵ（Micro  Processing  Unit），ＧＰＵ（Graphics  Processing  Unit），ＤＳＰ（Digital  Signal  Processor），ＡＳＩＣ（Application  Specific  Integrated  Circuit），ＰＬＤ（Programmable  Logic  Device），ＦＰＧＡ（Field  Programmable  Gate  Array）のいずれか一つであってもよい。また、プロセッサ１２は、ＣＰＵ，ＭＰＵ，ＧＰＵ，ＤＳＰ，ＡＳＩＣ，ＰＬＤ，ＦＰＧＡのうちの２種類以上の要素の組み合わせであってもよい。以下の説明では、プロセッサ１２−１〜１２−８を区別する必要がなく、任意のプロセッサ１２−１〜１２−８を示す場合には、プロセッサ１２と記載する。
【００２３】
メモリ１３−１は、ＲＯＭ（Read  Only  Memory）およびＲＡＭ（Random  Access  Memory）を含む記憶メモリである。メモリ１３−１のＲＯＭには、各種ソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ１３−１上のソフトウェアプログラムは、プロセッサ１２に適宜読み込まれて実行される。また、メモリ１３−１のＲＡＭは、一次記憶メモリあるいはワーキングメモリとして利用される。以下の説明では、メモリ１３−１〜１３−８を区別する必要がなく、任意のメモリ１３−１〜１３−８を示す場合には、メモリ１３と記載する。
【００２４】
記憶部１４−１は、ハードディスクドライブ（Hard  Disk  Drive：ＨＤＤ）、ＳＳＤ（Solid  State  Drive）、ストレージクラスメモリ（Storage  Class  Memory：ＳＣＭ）等の記憶装置であって、種々のデータを格納するものである。例えば、記憶部１４−１には各種ソフトウェアプログラムが記憶される。以下の説明では、記憶部１４−１〜１４−８を区別する必要がなく、任意の記憶部１４−１〜１４−８を示す場合には、記憶部１４と記載する。
【００２５】
プラットフォーム１０においては、プロセッサ１２がメモリ１３や記憶部１４に格納されたソフトウェアプログラムを実行することで各種機能を実現する。
【００２６】
なお、上記の各種ソフトウェアプログラムは、必ずしもメモリ１３や記憶部１４に記憶されている必要はない。例えば、媒体読取装置等が読み取り可能な記憶媒体に記憶されたプログラムを、プラットフォーム１０が読み出して実行するようにしてもよい。プラットフォーム１０が読み取り可能な記憶媒体は、例えば、ＣＤ−ＲＯＭやＤＶＤディスク、ＵＳＢ（Universal  Serial  Bus）メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、ＬＡＮ等に接続された装置にこの情報処理プログラムを記憶させておき、プラットフォーム１０がこれらから情報処理プログラムを読み出して実行するようにしてもよい。
【００２７】
通信部１５−１は、電源制御ユニット４０との通信を実行するためのインタフェースである。例えば、通信部１５−１は、Ｉ２Ｃ（Inter-Integrated  Circuit）等の通信規格により通信を実行する。以下の説明では、通信部１５−１〜１５−８を区別する必要がなく、任意の通信部１５−１〜１５−８を示す場合には、通信部１５と記載する。
【００２８】
次に、中継装置３０について説明する。中継装置３０は、プラットフォーム１０毎に設けられたエンドポイント３１−１〜３１−８と、プロセッサ３２と、メモリ３３と、記憶部３４と、内部バス３５と、ＰＣＩｅバス３６と、電源制御ユニット４０とを備える。以下の説明では、各エンドポイント３１−１〜３１−８を区別する必要がなく、任意のエンドポイント３１−１〜３１−８を示す場合には、エンドポイント３１と記載する。
【００２９】
エンドポイント３１は、プラットフォーム１０毎に設けられ、データの送受信を実行する。例えば、エンドポイント３１は、接続されたプラットフォーム１０からデータを受信した場合に、ＰＣＩｅバス３６を介して、送信先のプラットフォーム１０に接続されたエンドポイント３１に受信したデータを送信する。
【００３０】
例えば、ルートコンプレックス１１は、ＤＭＡ（Direct  Memory  Access）転送により他のプラットフォーム１０にデータを送信する。また、エンドポイント３１は、データの送信元のプラットフォーム１０に接続されたエンドポイント３１から、ＰＣＩｅバス３６を介してデータを受信した場合に、接続されたプラットフォーム１０に受信したデータを送信する。
【００３１】
プロセッサ３２は、中継装置３０全体を制御する。プロセッサ３２は、マルチプロセッサであってもよい。また、プロセッサ３２は、例えばＣＰＵ，ＭＰＵ，ＧＰＵ，ＤＳＰ，ＡＳＩＣ，ＰＬＤ，ＦＰＧＡのいずれか一つであってもよい。また、プロセッサ３２は、ＣＰＵ，ＭＰＵ，ＧＰＵ，ＤＳＰ，ＡＳＩＣ，ＰＬＤ，ＦＰＧＡのうちの２種類以上の要素の組み合わせであってもよい。
【００３２】
メモリ３３は、ＲＯＭ、及びＲＡＭを含む記憶装置である。ＲＯＭには、各種ソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ３３に記憶されたプログラムは、プロセッサ３２に読み込まれて実行される。また、ＲＡＭは、ワーキングメモリとして利用される。
【００３３】
記憶部３４は、ハードディスクドライブ、ＳＳＤ、ストレージクラスメモリ等の記憶装置であって、種々のデータを格納するものである。例えば、記憶部３４には各種ソフトウェアプログラムが記憶される。
【００３４】
内部バス３５は、プロセッサ３２、メモリ３３、記憶部３４、及びＰＣＩｅバス３６を通信可能に接続する。
【００３５】
ＰＣＩｅバス３６は、複数のエンドポイント３１、及び内部バス３５を通信可能に接続する。すなわち、ＰＣＩｅバス３６は、複数のエンドポイント３１間でデータを転送可能に接続する。また、ＰＣＩｅバス３６は、例えばＰＣＩｅ規格に準拠したバスである。
【００３６】
電源制御ユニット４０は、プラットフォーム１０への電力の供給を制御する。電源制御ユニット４０は、例えば、マイクロコンピュータやマイクロコントローラと呼ばれる集積回路である。電源制御ユニット４０は、中継装置３０の再起動時にもプラットフォーム１０に電力を供給する。また、電源制御ユニット４０は、プラットフォーム１０−１及び中継装置３０のプロセッサ３２と接続されている。
【００３７】
次に、電源制御ユニット４０のハードウェア構成について説明する。図３は、電源制御ユニット４０のハードウェア構成の一例を示す図である。
【００３８】
電源制御ユニット４０は、プロセッサ４１と、メモリ４２と、第１接続部４３と、第２接続部４４とを備える。プロセッサ４１と、メモリ４２と、第１接続部４３と、第２接続部４４とは、バス４５を介して通信可能に接続される。
【００３９】
プロセッサ４１は、電源制御ユニット４０全体を制御する。プロセッサ４１は、マルチプロセッサであってもよい。また、プロセッサ４１は、例えばＣＰＵ，ＭＰＵ，ＧＰＵ，ＤＳＰ，ＡＳＩＣ，ＰＬＤ，ＦＰＧＡのいずれか一つであってもよい。また、プロセッサ４１は、ＣＰＵ，ＭＰＵ，ＧＰＵ，ＤＳＰ，ＡＳＩＣ，ＰＬＤ，ＦＰＧＡのうちの２種類以上の要素の組み合わせであってもよい。
【００４０】
メモリ４２は、ＲＯＭ、及びＲＡＭを含む記憶装置である。ＲＯＭには、各種ソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ４２に記憶されたプログラムは、プロセッサ４１に読み込まれて実行される。また、ＲＡＭは、ワーキングメモリとして利用される。
【００４１】
第１接続部４３は、プラットフォーム１０−１と接続するためのインタフェースである。例えば、第１接続部４３は、Ｉ２Ｃ等のインタフェースである。
【００４２】
第２接続部４４は、中継装置３０のプロセッサ３２と接続するためのインタフェースである。例えば、第２接続部４４は、ＧＰＩＯ（General  Purpose  Input  Output）を介して接続されている。
【００４３】
次に、中継装置３０に接続されるプラットフォーム１０−１とプラットフォーム１０−２との間における通信処理の一例について説明する。図４は、本実施例に係るプラットフォーム１０間の通信処理の一例を説明するための図である。ここでは、プラットフォーム１０−１と、プラットフォーム１０−２との間での通信処理の一例について説明するが、他のプラットフォーム１０間も同様に通信を行う。
【００４４】
図４に示すように、中継装置内蔵コンピュータ１は、例えば、ＰＣＩｅの規格で規定されたレイヤー構造を有している。そして、中継装置内蔵コンピュータ１は、各階層を介して、プラットフォーム１０間の通信を実行する。
【００４５】
送信元のプラットフォーム１０−１は、ソフトウェアが指定したデータを、トランザクション層、データリンク層、及び物理層（ＰＨＹ）を介して、中継装置３０の物理層（ＰＨＹ）に転送する。
【００４６】
中継装置３０は、送信元のプラットフォーム１０−１から転送されてきたデータを、物理層（ＰＨＹ）、及びデータリンク層を介して、トランザクション層に受け渡す。中継装置３０は、トランザクション層において、送信先のプラットフォーム１０−２に対応するエンドポイント３１にトンネリングによりデータを転送する。中継装置３０は、トランザクション層、データリンク層、及び物理層（ＰＨＹ）を介して、送信先のプラットフォーム１０−２の物理層（ＰＨＹ）に転送する。このように、中継装置３０は、エンドポイント３１間でデータをトンネリングさせることで、送信元のプラットフォーム１０−１からから送信先のプラットフォーム１０−２にデータを転送する。
【００４７】
送信先のプラットフォーム１０−２では、物理層（ＰＨＹ）、データリンク層、及びトランザクション層を介して、データがソフトウェアに受け渡される。
【００４８】
また、中継装置３０に接続された複数のプラットフォーム１０のうち、一のプラットフォーム１０にデータの転送が集中しない場合、異なる任意の組み合わせのプラットフォーム１０間で並行してデータを転送することができる。
【００４９】
例えば、プラットフォーム１０−１に対して、プラットフォーム１０−２、及びプラットフォーム１０−３が通信する場合には、中継装置３０は、プラットフォーム１０−２、及びプラットフォーム１０−３との通信をシリアル処理により実行する。一方、異なるプラットフォーム１０同士が通信し、特定のプラットフォーム１０に通信が集中しない場合には、中継装置３０は、プラットフォーム１０間の通信を並列処理により実行する。
【００５０】
次に、本実施形態の中継装置内蔵コンピュータ１が有する各部の特徴的な機能について説明する。図５は、中継装置内蔵コンピュータ１が有する各部の機能の一例を示す機能ブロック図である。
【００５１】
まず、プラットフォーム１０−１について説明する。
【００５２】
プラットフォーム１０−１のプロセッサ１２−１は、メモリ１３−１や記憶部１４−１等に記憶されるプログラムを実行することによって、図５に示す機能を実現する。具体的には、プロセッサ１２−１は、機能部として、通信制御部１０１１、接続検出部１０１２、初期化制御部１０１３、状態取得部１０１４、及び表示設定部１０１５を備える。
【００５３】
通信制御部１０１１は、第１の接続部の一例である。通信制御部１０１１は、ルートコンプレックス１１−１を制御して、中継装置３０を介したプラットフォーム１０−２〜１０−８との通信を実行する。すなわち、通信制御部１０１１は、中継装置３０と接続する。そして、通信制御部１０１１は、中継装置３０に対してデータの送受信を実行する。また、プラットフォーム１０−１は、Ｓｙｓｔｅｍ  ＢＩＯＳ（Basic  Input  Output  System）でＨＰＤに対応したデバイスとして設定される。すなわち、通信制御部１０１１は、電源投入時の挿抜である活性挿抜に対応している。よって、プラットフォーム１０−１は、電源投入時に挿抜されても中継装置３０との通信を実行することができる。
【００５４】
接続検出部１０１２は、第１の検出部の一例である。接続検出部１０１２は、中継装置３０が接続されたことを検出する。例えば、中継装置３０が再起動した場合に、接続検出部１０１２は、再起動した中継装置３０を検出する。
【００５５】
初期化制御部１０１３は、初期化部の一例である。初期化制御部１０１３は、接続検出部１０１２が中継装置３０を検出した場合に、中継装置３０を介した通信に関する設定を初期化する。更に詳しくは、初期化制御部１０１３は、ＢＩＯＳで中継装置３０が接続されたことを検出した場合に、各種設定を初期化する。例えば、初期化制御部１０１３は、ＢＡＲ（Base  Address  Register）、割込みレジスタ、その他のレジスタ等を初期化する。
【００５６】
状態取得部１０１４は、中継装置３０が再起動したことを示す情報を取得する。更に詳しくは、状態取得部１０１４は、通信部１５−１を制御して、中継装置３０が再起動されたことが示された「Error  Status」を電源制御ユニット４０に要求する。そして、状態取得部１０１４は、中継装置３０から応答として送信された「Error  Status」を取得する。
【００５７】
表示設定部１０１５は、設定変更部の一例である。表示設定部１０１５は、プラットフォーム１０と中継装置３０との接続を切断する否かを切り替える表示を非表示設定に変更する。例えば、例えばＷｉｎｄｏｗｓ（登録商標）のタスクバーの「ハードウェアの取り外し」において、プラットフォーム１０と中継装置３０との接続を切断する操作が入力されると、プラットフォーム１０と中継装置３０との接続は切断される。この場合、プラットフォーム１０と中継装置３０とが切断されるため通信を継続することができなくなってしまう。そこで、表示設定部１０１５は、ドライバプログラム内でＫＭＤＦ（Kernel-Mode  Driver  Framework）のＡＰＩ（Application  Programming  Interface）を経由してレジストリの値を変更することで非表示に変更する。
【００５８】
また、Ｗｉｎｄｏｗｓ（登録商標）のコントロールパネルの「デバイスとプリンター」においてもプラットフォーム１０と中継装置３０との接続は切断される。そこで、表示設定部１０１５は、ＩＮＦファイルで直接レジストリの値を書き換えることで非表示に変更する。これにより、表示設定部１０１５は、プラットフォーム１０と中継装置３０との接続が切断されてしまうことを防止する。すなわち、表示設定部１０１５は、中継装置３０を介した通信を継続させることができる。
【００５９】
次に、中継装置３０について説明する。
【００６０】
中継装置３０のプロセッサ３２は、メモリ３３や記憶部３４等に記憶されるプログラムを実行することによって、図５に示す機能を実現する。具体的には、プロセッサ３２は、機能部として、中継制御部３００１、障害検出部３００２、再起動制御部３００３、及びメッセージ制御部３００４を備える。
【００６１】
中継制御部３００１は、プラットフォーム１０間における通信を制御する。更に詳しくは、中継制御部３００１は、図４に示すように、プラットフォーム１０間のデータ転送を制御する。
【００６２】
障害検出部３００２は、プラットフォーム１０間の通信に障害が発生したことを検出する。例えば、障害検出部３００２は、所定期間内に通信が行われない場合に、障害が発生したとして検出する。
【００６３】
再起動制御部３００３は、第２の再起動部の一例である。再起動制御部３００３は、障害検出部３００２が通信障害を検出した場合に中継装置３０を再起動する。
【００６４】
メッセージ制御部３００４は、通知部の一例である。メッセージ制御部３００４は、中継装置３０が再起動したことをプラットフォーム１０−１〜１０−８に通知する。更に詳しくは、メッセージ制御部３００４は、中継装置３０の再起動が完了した場合に、再起動したことを示す情報をプラットフォーム１０−１〜１０−８に送信する。例えば、メッセージ制御部３００４は、ＰＣＩｅのＬｉｎｋｕｐ時に「DRS（Device  Readiness  Status）  Message」をプラットフォーム１０−１〜１０−８に送信する。
【００６５】
次に、電源制御ユニット４０について説明する。
【００６６】
電源制御ユニット４０のプロセッサ４１は、メモリ４２等に記憶されるプログラムを実行することによって、図５に示す機能を実現する。具体的には、プロセッサ４１は、機能部として、電源制御部４００１、再起動検出部４００２、及び状態制御部４００３を備える。
【００６７】
電源制御部４００１は、プラットフォーム１０への電力供給を制御する。また、電源制御部４００１は、中継装置３０の再起動時にもプラットフォーム１０に電力を供給する。
【００６８】
再起動検出部４００２は、第２の検出部の一例である。再起動検出部４００２は、中継装置３０が再起動したことを検出する。更に詳しくは、再起動検出部４００２は、第２接続部４４を介して、中継装置３０が再起動したことを示す情報を受信する。例えば、再起動検出部４００２は、ＧＰＩＯを介して、ＦＷ（Firm  Ware）の起動時に中継装置３０が再起動したことを示すフラグを受信する。
【００６９】
状態制御部４００３は、第１接続部４３を介して、中継装置３０が再起動したことを示す情報が要求された場合に、中継装置３０の状態変化を示す情報を送信する。すなわち、状態制御部４００３は、Ｉ２Ｃを介して、中継装置３０が再起動したことを示す「Error  Status」が要求された場合に、応答として「Error  Status」を送信する。
【００７０】
次に、プラットフォーム１０−２〜１０−８について説明する。
【００７１】
プラットフォーム１０−２〜１０−８のプロセッサ１２−２〜１２−８は、メモリ１３−２〜１３−８や記憶部１４−２〜１４−８等に記憶されるプログラムを実行することによって、図５に示す機能を実現する。具体的には、プロセッサ１２−２〜１２−８は、機能部として、通信制御部１０２１、再起動制御部１０２２、及び初期化制御部１０２３を備える。
【００７２】
通信制御部１０２１は、第２の接続部の一例である。通信制御部１０２１は、ルートコンプレックス１１−２〜１１−８を制御して、中継装置３０を介してプラットフォーム１０との通信を実行する。すなわち、通信制御部１０２１は、中継装置３０と接続する。そして、通信制御部１０２１は、中継装置３０に対してデータの送受信を実行する。
【００７３】
再起動制御部１０２２は、第１の再起動部の一例である。再起動制御部１０２２は、プラットフォーム１０−２〜１０−８の再起動を実行する。更に詳しくは、再起動制御部１０２２は、自装置であるプラットフォーム１０−２〜１０−８に障害等が発生した場合に、自装置であるプラットフォーム１０−２〜１０−８を再起動する。
【００７４】
初期化制御部１０２３は、プラットフォーム１０−２〜１０−８の再起動に伴い、プラットフォーム１０−２〜１０−８を初期化する。更に詳しくは、初期化制御部１０２３は、ドライバをロードする。また、初期化制御部１０２３は、ＢＡＲ等のレジスタ初期化して、「Base  Address」を割当てる。
【００７５】
次に、復旧処理について説明する。図６は、本実施例に係る復旧処理の一例を示すシーケンス図である。復旧処理は、中継装置３０を介した通信において、通信障害から復旧させる処理である。
【００７６】
中継装置内蔵コンピュータ１の各部は、動作状態になっている（ステップＳ１）。
【００７７】
中継装置内蔵コンピュータ１の各部は、中継装置３０を介した通信を実行する（ステップＳ２）。例えば、送信元のプラットフォーム１０−１の通信制御部１０１１は、送信先のプラットフォーム１０−２〜１０−８を指定して送信データを中継装置３０に送信する。中継装置３０に設けられたプロセッサ３２の中継制御部３００１は、指定さえたプラットフォーム１０−２〜１０−８に送信データを送信する。送信先のプラットフォーム１０−２〜１０−８の通信制御部１０２１は、送信データを受信する。
【００７８】
プロセッサ３２の障害検出部３００２は、「Bus  Fault」が発生する（ステップＳ３）。すなわち、障害検出部３００２は、ＰＣＩｅバス３６に通信障害が発生する。
【００７９】
プロセッサ３２の障害検出部３００２は、「Bus  Transaction  Error」のをプラットフォーム１０−１に送信する（ステップＳ４）。すなわち、障害検出部３００２は、プラットフォーム１０間の通信にエラーが発生したことを送信する。
【００８０】
プロセッサ３２の再起動制御部３００３は、自装置を再起動する（ステップＳ５）。再起動制御部３００３は、各種設定を初期化する（ステップＳ６）。
【００８１】
プロセッサ３２の再起動制御部３００３は、ステップＳ６の再起動において起動が完了した場合に、起動完了通知を送信する（ステップＳ７）。更に詳しくは、再起動制御部３００３は、起動完了信号を有効して、起動完了通知を送信する。
【００８２】
プロセッサ３２のメッセージ制御部３００４は、「DRS  Message」を設定する（ステップＳ８）。すなわち、メッセージ制御部３００４は、中継装置３０が再起動したことを示す情報を生成する。
【００８３】
電源制御ユニット４０の再起動検出部４００２は、起動完了通知に基づいて、プロセッサ３２の再起動を検出する（ステップＳ９）。また、電源制御ユニット４０の再起動検出部４００２は、プロセッサ３２の再起動の検出通知をプラットフォーム１０−２〜１０−８に送信する（ステップＳ１０）。
【００８４】
プロセッサ３２の再起動制御部３００３は、起動完了通知の送信を終了する（ステップＳ１１）。更に詳しくは、再起動制御部３００３は、起動完了信号を無効して、起動完了通知の送信を終了する。
【００８５】
プラットフォーム１０−１と中継装置３０とは、「PCIe  Link  up」になる（ステップＳ１２）。すなわち、プラットフォーム１０−１と中継装置３０とは、ＰＣＩｅにおいて通信可能に接続される。
【００８６】
プロセッサ３２のメッセージ制御部３００４は、「DRS  Message」を発行する（ステップＳ１３）。すなわち、メッセージ制御部３００４は、中継装置３０が再起動したことを示す情報をプラットフォーム１０に送信する。
【００８７】
プラットフォーム１０−１の接続検出部１０１２は、プロセッサ３２の再起動が完了したことに伴い、中継装置３０が接続されたことを検出する（ステップＳ１４）。
【００８８】
プラットフォーム１０−１の初期化制御部１０１３は、ＢＩＯＳの初期化を実行する（ステップＳ１５）。すなわち、初期化制御部１０１３は、レジスタ等を初期化して「Base  Address」を割当てる。
【００８９】
プラットフォーム１０−１の初期化制御部１０１３は、ドライバの初期化を実行する（ステップＳ１６）。
【００９０】
プラットフォーム１０−２〜１０−８の再起動制御部１０２２は、プロセッサ３２の再起動を検出した場合に、自装置を再起動する処理を開始する（ステップＳ１７）。例えば、再起動制御部１０２２は、自装置に通信障害等が発生した場合に、再起動を実行する。
【００９１】
プラットフォーム１０−２〜１０−８の再起動制御部１０２２は、ステップＳ３の再起動に伴い起動する（ステップＳ１８）。
【００９２】
プラットフォーム１０−２〜１０−８の初期化制御部１０２３は、ドライバをロードする（ステップＳ１９）。初期化制御部１０２３は、レジスタ等の初期化を実行する（ステップＳ２０）。すなわち、初期化制御部１０２３は、「Base  Address」を割当てる。
【００９３】
中継装置３０とプラットフォーム１０−２〜１０−８とは、「PCIe  Link  up」になる（ステップＳ２１）。すなわち、プラットフォーム１０−２〜１０−８と中継装置３０とは、ＰＣＩｅにおいて通信可能に接続される。
【００９４】
プロセッサ３２のメッセージ制御部３００４は、「DRS  Message」を発行する（ステップＳ２２）。
【００９５】
中継装置内蔵コンピュータ１の各部は、動作状態になっている（ステップＳ２３）。
【００９６】
プラットフォーム１０−１の状態取得部１０１４は、「Error  Status」を要求する（ステップＳ２４）。
【００９７】
電源制御ユニット４０の状態制御部４００３は、「Error  Status」要求の応答として、「Error  Status」を送信する（ステップＳ２５）。
【００９８】
以上のように、本実施例に係る中継装置内蔵コンピュータ１は、中継装置３０を介してプラットフォーム１０−１〜１０−８が通信可能に接続されている。プラットフォーム１０−１〜１０−８のうち、少なくともプラットフォーム１０−１は、ＨＰＤに対応している。しかし、プラットフォーム１０−２〜１０−８の何れかはＨＰＤに対応していない。このような場合に、例えばプラットフォーム１０−２〜１０−８が再起動したことに中継装置３０を介した通信に障害が発生すると、中継装置３０は自装置を再起動する。これにより、プラットフォーム１０と中継装置３０との接続が活性挿抜されたかのような状態が発生する。プラットフォーム１０−１は、中継装置３０の再起動を検出した場合に、ドライバやレジスタ値等の中継装置３０を介した通信に関する設定を初期化する。これにより、中継装置内蔵コンピュータ１は、プラットフォーム１０−１を再起動させることなく、中継装置３０を介した通信をできるようにする。よって、中継装置内蔵コンピュータ１は、中継装置３０を介した通信を継続することができる。
【００９９】
上述の実施形態では、各部のバス（例えば、拡張バス）又はＩ／ＯインタフェースとしてＰＣＩｅを例に挙げて説明したが、バスまたはＩ／ＯインタフェースはＰＣＩｅに限定されない。例えば、各部のバスまたはＩ／Ｏインタフェースは、データ転送バスによって、デバイス（周辺制御コントローラ）とプロセッサとの間でデータ転送を行える技術であればよい。データ転送バスは、１個の筐体等に設けられたローカルな環境（例えば、１つのシステム又は１つの装置）で高速にデータを転送できる汎用のバスであってもよい。Ｉ／Ｏインタフェースは、パラレルインタフェース及びシリアルインタフェースの何れであってもよい。
【０１００】
Ｉ／Ｏインタフェースは、シリアル転送の場合、ポイント・ツー・ポイント接続ができ、データをパケットベースで転送可能な構成でよい。なお、Ｉ／Ｏインタフェースは、シリアル転送の場合、複数のレーンを有してよい。Ｉ／Ｏインタフェースのレイヤー構造は、パケットの生成及び復号を行うトランザクション層と、エラー検出等を行うデータリンク層と、シリアルとパラレルとを変換する物理層とを有してよい。また、Ｉ／Ｏインタフェースは、階層の最上位であり１又は複数のポートを有するルートコンプレックス、Ｉ／Ｏデバイスであるエンドポイント、ポートを増やすためのスイッチ、及び、プロトコルを変換するブリッジ等を含んでよい。Ｉ／Ｏインタフェースは、送信するデータとクロック信号とをマルチプレクサによって多重化して送信してもよい。この場合、受信側は、デマルチプレクサでデータとクロック信号を分離してよい。
【符号の説明】
【０１０１】
１  中継装置内蔵コンピュータ
１０  プラットフォーム
３０  中継装置
４０  電源制御ユニット
１０１１、１０２１  通信制御部
１０１２  接続検出部
１０１３、１０２３  初期化制御部
１０１４  状態取得部
１０１５  表示設定部
３００１  中継制御部
３００２  障害検出部
１０２２、３００３  再起動制御部
３００４  メッセージ制御部
４００１  電源制御部
４００２  再起動検出部
４００３  状態制御部
【要約】
【課題】中継装置を介した通信を継続する。
【解決手段】電源投入時の挿抜である活性挿抜に対応した第１の接続部を有する第１の情報処理装置と、複数の第２の情報処理装置とを中継装置を介して通信可能に接続した情報処理システムである。前記第２の情報処理装置は、前記中継装置と接続する第２の接続部と、前記第２の情報処理装置の再起動を実行する第１の再起動部を備える。前記中継装置は、前記中継装置の再起動時にも前記第１の情報処理装置及び前記第２の情報処理装置に電力を供給する電源制御ユニットと、通信障害を検出した場合に前記中継装置を再起動する第２の再起動部と、を備える。前記第１の情報処理装置は、前記中継装置と接続する前記第１の接続部と、再起動した前記中継装置を検出する第１の検出部と、前記第１の検出部が前記中継装置を検出した場合に、前記中継装置を介した通信に関する設定を初期化する初期化部と、を備える。
【選択図】図５【図１】
0006700569.tif 000002
【図２】
0006700569.tif 000003
【図３】
0006700569.tif 000004
【図４】
0006700569.tif 000005
【図５】
0006700569.tif 000006
【図６】
0006700569.tif 000007