【解決手段】実施形態の情報処理システムは、複数の情報処理装置と、複数の情報処理装置と接続するために複数の接続部を有する中継装置とを備える情報処理システムであって、中継装置は、複数の情報処理装置の各々に対して電力の供給を制御する電源制御部を備え、情報処理システムは、情報処理システムの起動時に、複数の情報処理装置のうち少なくとも1つである第1の情報処理装置で起動が失敗したことを示した異常信号を受信する受信制御部と、異常信号に基づいて第1の情報処理装置で起動が失敗したことを検出した場合に、第1の情報処理装置に電力の供給を停止させる第1の指示信号の要求を電源制御部に送信する送信制御部と、を備える。
前記送信制御部は、さらに、前記第1の情報処理装置に前記電力の供給を停止させた後に、前記第1の情報処理装置に電力の供給を開始させる第2の指示信号の要求を前記電源制御部に送信する、
請求項1に記載の情報処理システム。
前記受信制御部が、前記第2の指示信号を送信した後、前記第1の情報処理装置で起動が失敗したことを示した異常信号を受信した場合に、前記送信制御部は、前記第1の指示信号及び前記第2の指示信号の要求を前記電源制御部に送信しない、
請求項2に記載の情報処理システム。
【発明を実施するための形態】
【0010】
以下に、本発明にかかる情報処理システム、情報処理装置及びプログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【0011】
図1は、本実施形態に係る情報処理システム1の全体構成の一例を示す図である。情報処理システム1は、メインプラットフォーム(情報処理装置の一例)10−1と、複数のサブプラットフォーム(複数の情報処理装置の一例)10−2〜10−8と、中継装置30と、を備えている。メインプラットフォーム10−1と、複数のサブプラットフォームと、の間は、中継装置30を介して通信可能に接続されている。なお、メインプラットフォーム10−1と、複数のサブプラットフォーム10−2〜10−8と、の組み合わせについてはプラットフォーム10−1〜10−8と称する。なお、本実施形態は一例として示したものであって、サブプラットフォーム、スロットおよびエンドポイントの数は適宜変更してよい。
【0012】
プラットフォーム10−1〜10−8は、中継装置30を介して、通信可能に接続されている。プラットフォーム10−1〜10−8は、例えば、中継装置30が設けられたボード上のスロットに挿入される。また、複数のスロットのうち、何れかのスロットは、プラットフォーム10−1〜10−8が挿入されていない空き状態であってもよい。以下の説明では、各プラットフォーム10−1〜10−8を区別する必要がなく、任意のプラットフォーム10−1〜10−8を示す場合には、プラットフォーム10と記載する。
【0013】
プラットフォーム10−1は、プラットフォーム10−2〜10−8を管理して、プラットフォーム10−2〜10−8に各種処理を実行させるメインの情報処理装置である。
【0014】
プラットフォーム10−1には、モニタ21と、入力装置22とが接続されている。モニタ21は、例えば液晶表示装置等の各種画面を表示する。入力装置22は、例えばキーボードやマウス等の各種操作を受け付ける。
【0015】
プラットフォーム10−2〜10−8は、プラットフォーム10−1の要求に基づいて、例えばAI(Artificial Intelligence)推論処理や画像処理等を実行するサブの情報処理装置である。また、プラットフォーム10−2〜10−8は、それぞれが異なる機能を有していてもよい。
【0016】
プラットフォーム10−1〜10−8は、ホスト側として動作可能なルートコンプレックス(RC:Root Complex)11−1〜11−8を有する。プラットフォーム10−1〜10−8は、第2の接続部の一例とする。以下の説明では、各ルートコンプレックス11−1〜11−8を区別する必要がなく、任意のルートコンプレックス11−1〜11−8を示す場合には、ルートコンプレックス11と記載する。
【0017】
ルートコンプレックス11は、中継装置30の各エンドポイント31−1〜31−8との通信を実行する。すなわち、プラットフォーム10と中継装置30とは、PCIe(Peripheral Component Interconnect Express)等の通信規格により通信可能に接続される。プラットフォーム10と中継装置30とは、PCIeに限らず他の通信規格により接続されていてもよい。
【0018】
中継装置30は、複数のエンドポイント(EP:End Point)31−1〜31−8を有する。エンドポイント31−1〜31−8は、第1の接続部の一例とする。また、中継装置30は、エンドポイント31−1〜31−8に接続されたルートコンプレックス11を有する複数のプラットフォーム10間での通信を中継する。
【0019】
エンドポイント31−1〜31−8は、プラットフォーム10のルートコンプレックス11との通信を実行する。以下の説明では、各エンドポイント31−1〜31−8を区別する必要がなく、任意のエンドポイント31−1〜31−8を示す場合には、エンドポイント31と記載する。
【0020】
次に、情報処理システム1の各装置のハードウェア構成について説明する。
図2は、情報処理システム1の各装置のハードウェア構成の一例を示す図である。情報処理システム1は、各部に電源を供給するPSU(Power Supply Unit)40を備えている。
【0021】
PSU40は、例えば、マイクロコンピュータやマイクロコントローラと呼ばれる集積回路である。PSU40は、プラットフォーム10−1〜10−8及び中継装置30のプロセッサ32と接続されている。
【0022】
情報処理システム1は、プラットフォーム10−1〜10−8を備えている。ここでは、プラットフォーム10−1のハードウェア構成を例に説明し、同様の構成を備えているプラットフォーム10−2〜10−8については説明を省略する。
【0023】
プラットフォーム10−1は、AI処理や画像処理等の演算処理を行なうコンピュータである。プラットフォーム10−1は、ルートコンプレックス11−1と、プロセッサ12−1と、メモリ13−1と、を備える。また、これらは、バスを介して通信可能に接続される。
【0024】
プロセッサ12−1は、プラットフォーム10−1全体を制御する。プロセッサ12−1は、マルチプロセッサであってもよい。また、プロセッサ12−1は、例えばCPU(Central Processing Unit),MPU(Micro Processing Unit),GPU(Graphics Processing Unit),DSP(Digital Signal Processor),ASIC(Application Specific Integrated Circuit),PLD(Programmable Logic Device),FPGA(Field Programmable Gate Array)のいずれか一つであってもよい。また、プロセッサ12は、CPU,MPU,GPU,DSP,ASIC,PLD,FPGAのうちの2種類以上の要素の組み合わせであってもよい。以下の説明では、プロセッサ12−1〜12−8を区別する必要がなく、任意のプロセッサ12−1〜12−8を示す場合には、プロセッサ12と記載する。
【0025】
メモリ13−1は、ROM(Read Only Memory)およびRAM(Random Access Memory)を含む記憶メモリである。メモリ13−1のROMには、各種ソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ13−1上のソフトウェアプログラムは、プロセッサ12に適宜読み込まれて実行される。また、メモリ13−1のRAMは、一次記憶メモリあるいはワーキングメモリとして利用される。以下の説明では、メモリ13−1〜13−8を区別する必要がなく、任意のメモリ13−1〜13−8を示す場合には、メモリ13と記載する。
【0026】
プラットフォーム10においては、プロセッサ12がメモリ13に格納されたソフトウェアプログラムを実行することで各種機能を実現する。
【0027】
なお、上記の各種ソフトウェアプログラムは、必ずしもメモリ13に記憶されている必要はない。例えば、媒体読取装置等が読み取り可能な記憶媒体に記憶されたプログラムを、プラットフォーム10が読み出して実行するようにしてもよい。プラットフォーム10が読み取り可能な記憶媒体は、例えば、CD−ROMやDVDディスク、USB(Universal Serial Bus)メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、LAN等に接続された装置にこの情報処理プログラムを記憶させておき、プラットフォーム10がこれらから情報処理プログラムを読み出して実行するようにしてもよい。
【0028】
次に、中継装置30について説明する。中継装置30は、プラットフォーム10毎に設けられたエンドポイント31−1〜31−8と、プロセッサ32と、メモリ33と、記憶部34と、内部バス35と、PCIeバス36と、電源制御部37と、を備える。以下の説明では、各エンドポイント31−1〜31−8を区別する必要がなく、任意のエンドポイント31−1〜31−8を示す場合には、エンドポイント31と記載する。
【0029】
エンドポイント31は、プラットフォーム10毎に設けられ、データの送受信を実行する。例えば、エンドポイント31は、接続されたプラットフォーム10からデータを受信した場合に、PCIeバス36を介して、送信先のプラットフォーム10に接続されたエンドポイント31に受信したデータを送信する。
【0030】
例えば、ルートコンプレックス11は、DMA(Direct Memory Access)転送により他のプラットフォーム10にデータを送信する。また、エンドポイント31は、データの送信元のプラットフォーム10に接続されたエンドポイント31から、PCIeバス36を介してデータを受信した場合に、接続されたプラットフォーム10に受信したデータを送信する。
【0031】
プロセッサ32は、中継装置30全体を制御する。プロセッサ32は、マルチプロセッサであってもよい。また、プロセッサ32は、例えばCPU,MPU,GPU,DSP,ASIC,PLD,FPGAのいずれか一つであってもよい。また、プロセッサ32は、CPU,MPU,GPU,DSP,ASIC,PLD,FPGAのうちの2種類以上の要素の組み合わせであってもよい。
【0032】
メモリ33は、ROM、及びRAMを含む記憶装置である。ROMには、各種ソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ33に記憶されたプログラムは、プロセッサ32に読み込まれて実行される。また、RAMは、ワーキングメモリとして利用される。
【0033】
記憶部34は、ハードディスクドライブ、SSD、ストレージクラスメモリ等の記憶装置であって、種々のデータを格納するものである。例えば、記憶部34には各種ソフトウェアプログラムが記憶される。
【0034】
内部バス35は、プロセッサ32、メモリ33、記憶部34、及びPCIeバス36を通信可能に接続する。
【0035】
PCIeバス36は、複数のエンドポイント31、及び内部バス35を通信可能に接続する。すなわち、PCIeバス36は、複数のエンドポイント31間でデータを転送可能に接続する。また、PCIeバス36は、例えばPCIe規格に準拠したバスである。
【0036】
電源制御部37は、PSU40に対する制御を行い、プラットフォーム10への電力の供給を制御する。電源制御部37は、情報処理システム1の起動時に、プラットフォーム10及び中継装置30の各々に電力の供給が開始されるように制御する。さらに、メインプラットフォーム10−1からの制御に従って、サブプラットフォーム10−2〜10−8に対する電源オフ制御、及び電源オン制御も行う。
【0037】
次に、情報処理システム1における電源制御について説明する。
図3は、本実施形態に係る情報処理システム1の電源構成の一例を示す図である。
【0038】
情報処理システム1は、情報処理システム1の電源状態を変更する操作を受け付ける電源ボタン50を備えている。電源ボタン50は、情報処理システム1を起動する操作と、シャットダウンする操作と、強制シャットダウンする操作とを受け付ける操作部である。例えば、電源ボタン50は、情報処理システム1がシャットダウンされている状態での押下を、情報処理システム1を起動する操作として受け付ける。また、電源ボタン50は、情報処理システム1が起動している状態での押下を、情報処理システム1をシャットダウンする操作として受け付ける。
【0039】
また、情報処理システム1は、電源ボタン50に限らず、他の方法により情報処理システム1をシャットダウンさせる操作を受け付けてもよい。例えば、情報処理システム1は、メインプラットフォーム10−1のOS(Operating System)の画面で、情報処理システム1をシャットダウンさせる操作を受け付けてもよい。
【0040】
中継装置30は、情報処理システム1の電源を供給するPSU40を制御する電源制御部37を備えている。
【0041】
電源制御部37は、メインプラットフォーム10−1、サブプラットフォーム10−2〜10−8の各々に対して、PSU40を用いた電力の供給を制御する。電源制御部37は、例えばマイクロコンピュータである。
【0042】
また、電源制御部37は、マイクロコンピュータに限らず、例えばCPU,MPU,GPU,DSP,ASIC,PLD,FPGAのいずれか一つであってもよい。また、電源制御部37は、CPU,MPU,GPU,DSP,ASIC,PLD,FPGAのうちの2種類以上の要素の組み合わせであってもよい。
【0043】
電源制御部37は、CPU、MPU等のプロセッサが電源制御部37のメモリに記憶されるソフトウェアプログラムを実行することによって、
図3に示す機能を実現する。具体的には、電源制御部37は、操作入力部311、監視部312、表示処理部313、及び信号制御部314を実現する。
【0044】
操作入力部311は、情報処理システム1の(図示しない)電源ボタンが受け付けた操作を示す電源SW入力信号を受け付ける。例えば、操作入力部311は、電源SW入力信号がHigh状態になった場合に、情報処理システム1を起動させる操作が入力されたと判定する。一方、Low状態になった場合に、情報処理システム1をシャットダウンさせる操作が入力されたと判定する。
【0045】
監視部312は、メインプラットフォーム10−1と、サブプラットフォーム10−2〜10―8と、の状態を監視する。
【0046】
例えば、監視部312は、メインプラットフォーム10−1と、サブプラットフォーム10−2〜10―8と、の各々の電源状態を監視する。さらに、監視部312は、メインプラットフォーム10−1と、サブプラットフォーム10−2〜10―8と、の各々で正常にOSの起動まで完了したか否かを監視する。
【0047】
さらに、監視部312は、サブプラットフォーム10−2〜10―8の動作状態を、メインプラットフォーム10−1に通知する。例えば、本実施形態の監視部312は、サブプラットフォーム10−2〜10―8の各々の起動が失敗したか否かを含むブートステータス情報を、後述する信号制御部314を介して、メインプラットフォーム10−1に送信する。ブートステータス情報には、サブプラットフォーム10−2〜10―8の各々の起動が失敗したか否かの他に、情報処理システム1で起動完了した等の情報を含むものとする。
【0048】
表示処理部313は、監視部312による監視結果に応じて、情報処理システム1に設けられた表示部41にエラー情報を表示する。表示部41は、エラーの場合に点灯する表示部であっても良いし、エラーを示す文字列を表示するための液晶パネル等であっても良い。
【0049】
信号制御部314は、信号の送受信を制御する。例えば、信号制御部314は、監視部312かの要求及びメインプラットフォーム10−1からの通知に応じて、PSU40やプラットフォーム10に対して送信又は受信する信号を制御する。
【0050】
例えば、信号制御部314は、監視部312の監視結果を、システム状態情報として所定時間毎に送信する。
【0051】
例えば、信号制御部314は、サブプラットフォーム10−2〜10―8との間で電源オン/オフ信号等の信号を送受信し、PSU40との間で、PS_ON_PMU#信号等の信号を送受信する。
【0052】
電源オン/オフ信号は、サブプラットフォーム10−2〜10―8の電源状態を切り替える信号である。更に詳しくは、電源オン/オフ信号は、サブプラットフォーム10−2〜10―8の電源のON状態と、OFF状態とを切り替える信号である。サブプラットフォーム10−2〜10―8は、電源オン/オフ信号がHigh状態の場合に、電源オン状態となる。一方、サブプラットフォーム10−2〜10―8は、電源オン/オフ信号がLow状態の場合に、電源オフ状態となる。なお、本実施形態では、電源オン/オフ信号がHigh状態の場合に、電源オン信号と称し、電源オン/オフ信号がLow状態の場合に、電源オフ信号と称する。
【0053】
PS_ON_PMU#信号は、12Vの電源供給を切り替える信号である。更に詳しくは、PSU40は、PS_ON_PMU#信号がLow状態の場合に、12Vの電源を供給する。一方、PSU40は、PS_ON_PMU#信号がHigh状態の場合に、12Vの電源を遮断する。
【0054】
PS_ON_PMU#信号がLow状態となった場合に、メインプラットフォーム10−1と、サブプラットフォーム10−2〜10−8と、の各々について12Vの電源が供給される。
【0055】
メインプラットフォーム10−1のプロセッサ12−1は、情報処理システム1全体を制御する。プロセッサ12−1は、メモリ13−1に記憶される監視プログラム350を実行することによって、
図3に示す機能を実現する。具体的には、プロセッサ12−1は、監視プログラム350として、受信制御部351と、検出部352と、送信制御部353と、を実現する。そして、監視プログラム350は、サブプラットフォーム10−2〜10−8の起動状態に関する情報を受信し、当該情報に基づいて、中継装置30を介して、サブプラットフォーム10−2〜10−8の制御を行う。
【0056】
受信制御部351は、情報処理システム1の起動時に、中継装置30から、サブプラットフォーム10−2〜10−8の起動状態に関するブートステータス情報を受信する。ブートステータス情報は、サブプラットフォーム10−2〜10―8の各々の起動状態が示されていて、例えば、ブートステータス情報には、サブプラットフォーム10−2〜10−8の各々で起動失敗したか否かが含まれている。
【0057】
検出部352は、ブートステータス情報に基づいて、サブプラットフォーム10−2〜10−8を電源再起動させるか否かを検出する。
【0058】
本実施形態においては、情報処理システム1を起動した際に、サブプラットフォーム10−2〜10−8(以下、サブプラットフォーム10−2〜10−8のうち起動が失敗したサブプラットフォームを、起動失敗サブプラットフォームと称する)のうちいずれか一つ以上において起動に失敗することがある。当該起動の失敗が、稀にしか生じず、そもそも異常が生じているか否かも不明な場合がある。このような場合は、起動失敗サブプラットフォームのOSが起動していないため、メインプラットフォーム10−1からの要求に従って再起動させるのは難しい。そこで、本実施形態においては、起動失敗サブプラットフォームの強制終了を行って、電力の供給をオフにした後、再び電力の供給を開始することで、起動失敗サブプラットフォームに正常な起動を促すこととした。
【0059】
また、本実施形態においては、起動失敗サブプラットフォームの電力の供給をオフにした後、再び電力の供給を開始する制御は、1回のみ行うこととした。これは、当該制御を2回行うと、情報処理システム1が使用開始できるまでの時間が遅くなる上に、2回も起動失敗した起動失敗サブプラットフォームは、明らかに異常が生じているという考えに基づくものである。
【0060】
このように、検出部352は、ブートステータス情報に基づいて、サブプラットフォーム10−2〜10−8のうちいずれか1つの起動失敗がしていることを検出した場合に、当該起動失敗が1回目に限り、送信制御部353に電源のオフ・オン要求を行うように指示する。
【0061】
送信制御部353は、検出部352からの指示に従って、起動失敗サブプラットフォームの電力の供給を停止させる電源オフ信号(第1の指示信号の一例)の要求を電源制御部37に送信する。さらに、送信制御部353は、起動失敗サブプラットフォームに電力の供給を停止させた後に、起動失敗サブプラットフォームに電力の供給を開始させる電源オン信号(第2の指示信号の一例)の要求を電源制御部37に送信する。
【0062】
また、送信制御部353は、起動失敗サブプラットフォームに対して電源オン信号を送信した後、受信制御部351が、起動失敗サブプラットフォームで再び起動が失敗したことを示したブートステータス情報を受信した場合には、上述したように、電源オフ信号、及び電源オン信号の要求を、電源制御部37に送信しないよう制御する。
【0063】
次に、本実施形態の情報処理システム1全体の起動時のおける処理について説明する。
図4は、本実施形態に係る情報処理システム1の起動時における処理を示したシーケンス図である。
図4に示されるシーケンス図では、サブプラットフォーム10−2において起動失敗したものとする。
【0064】
電源制御部37は、情報処理システム1の(図示しない)電源ボタンが受け付けた操作を示す電源SW入力信号を受け付ける(S401)。そして、電源制御部37は、情報処理システム1の電源状態を確認する(S402)。
図4に示される例では、情報処理システム1全体に12Vの電源が供給されていないと判断する。
【0065】
そこで、電源制御部37は、PSU40に対して、PS_ON_PMU#信号をLow状態に切り替えて、電源供給を開始させる指示を行う(S403)。
【0066】
PSU40は、PS_ON_PMU#信号に従って、中継装置30、メインプラットフォーム10−1、電源制御部37に対して12Vの電源供給を開始する(S404〜S406)。
【0067】
その後、電源制御部37の信号制御部314は、中継装置30に対して、起動状態の問い合わせを行う(S407)。そして、信号制御部314は、中継装置30から、起動状態の応答を受け取る(S408)。
図4で示されるシーケンス図では、中継装置30は、正常に起動完了した場合とする。
【0068】
監視部312は、メインプラットフォーム10−1の接続状態を確認する(S409)。監視部312が、メインプラットフォーム10−1が正常に接続されていると判定した場合に、信号制御部314が、起動開始指示を、メインプラットフォーム10−1に対して通知する(S410)。
【0069】
メインプラットフォーム10−1は、当該起動開始指示に従って、電源をONにする制御を行う(S411)。その後、メインプラットフォーム10−1は、電源が正常にONできた旨の応答を、電源制御部37に通知する(S412)。
【0070】
さらに、メインプラットフォーム10−1は、起動処理を開始する(S413)。当該起動処理に従って、BIOS及びOSの起動が行われる。その際に、メインプラットフォーム10−1の監視プログラム350も起動する。その後、メインプラットフォーム10−1は、起動処理が終了する(S414)。そして、メインプラットフォーム10−1は、起動処理が完了した旨の応答を、電源制御部37に通知する(S415)。
【0071】
監視部312は、サブプラットフォーム10−2〜10−8の接続状態を確認する(S416)。監視部312が、サブプラットフォーム10−2〜10−8が正常に接続されていると判定した場合に、信号制御部314が電源オン信号を、サブプラットフォーム10−2〜10−8に対して通知する(S417)。
【0072】
監視部312は、さらに、サブプラットフォーム10−2〜10−8の動作を確認する(S418)。当該動作の確認には、例えば、サブプラットフォーム10−2〜10−8のファン等が正常に動作しているか否かを確認する等が含まれている。
【0073】
監視部312が、サブプラットフォーム10−2〜10−8の動作が正常であると判定した場合に、信号制御部314が、起動開始指示を、サブプラットフォーム10−2〜10−8に対して通知する(S419)。
【0074】
その後、情報処理システム1においては、サブプラットフォーム10−2〜10−8からの起動完了通知が受信するのを所定時間待機する(S420)。そして、電源制御部37は、所定時間待機して、起動完了通知を送信しなかったサブプラットフォーム10−2〜10−8が存在する場合に、起動失敗したサブプラットフォームが存在することを示す“2×”を検出する(S421)。
図4で示される例では、電源制御部37は、当該起動完了通知を送信しなかったサブプラットフォーム10−2を、起動失敗サブプラットフォーム10−2とみなす。
【0075】
そして、信号制御部314が、メインプラットフォーム10−1に対して、起動失敗サブプラットフォーム10−2を検出したことを示すブートステータス情報を送信(起動失敗の通知)する(S422)。
【0076】
そして、メインプラットフォーム10−1の監視プログラム350の受信制御部351が、起動失敗を示したブートステータス情報を受信した場合に、ブートステータス情報に応じた異常検出処理を行う(S423)。なお、具体的な処理については後述する。
【0077】
そして、送信制御部353は、電源制御部37に対して、電源オフ・オン要求(電源オフ信号を送信した後に、電源オン信号を送信する旨の要求)を電源制御部37に送信する(S424)。
【0078】
そして、電源制御部37の信号制御部314は、メインプラットフォーム10−1からの電源オフ・オン要求に基づいて、所定時間の電源オフ信号を、起動失敗サブプラットフォーム10−2に送信し続ける(S425)。
【0079】
起動失敗サブプラットフォーム10−2では、強制終了が行われる(S426)。このように、サブプラットフォームにおいて、電源オフ信号を所定時間受信した場合には、強制終了が実行される。
【0080】
そして、監視部312が、起動失敗サブプラットフォーム10−2について電源状態を確認する(S427)。そして、監視部312が、電源状態に基づいて、起動失敗サブプラットフォーム10−2の強制終了が完了したことを確認してから、信号制御部314が、電源オン信号を、起動失敗サブプラットフォーム10−2に送信する(S428)。さらに、信号制御部314が、必要に応じて、起動開始指示の送信も行う。
【0081】
その後、起動失敗サブプラットフォーム10−2では、OS起動が行われた後(S429)、ドライバのロードが行われる(S430)。
【0082】
その後、サブプラットフォーム10−2は、起動が完了したことを示す起動完了通知を、電源制御部37に送信する(S431)。
【0083】
そして、電源制御部37の信号制御部314は、起動失敗サブプラットフォームが正常に起動完了した旨を示した起動完了通知を、メインプラットフォーム10−1に送信する(S432)。
【0084】
上述した処理を行うことで、起動失敗したサブプラットフォームについて正常な起動を実現することができる。
【0085】
次に、メインプラットフォーム10−1の監視プログラム350の処理について説明する。
図5は、本実施形態に係るメインプラットフォーム10−1の監視プログラム350の処理を示したフローチャートである。
【0086】
監視プログラム350の受信制御部351は、受信したブートステータス情報を、メインプラットフォーム10−1のレジストリに、情報処理システム1のシステム状態情報として格納する。当該格納は、ブートステータス情報を受信する毎に行われる。
【0087】
そして、検出部352は、レジストリの情報処理システム1のシステム状態情報を参照する(S501)。そして、検出部352は、システム状態情報にサブプラットフォーム10−2〜10−8の各々の起動状態が含まれており、起動監視が可能か否かを判定する(S502)。起動監視ができないと判定した場合(S502:No)、処理を終了する。
【0088】
検出部352は、起動監視可能と判定した場合(S502:Yes)、システム状態情報から、システム状態を取得する(S503)。そして、検出部352は、システム状態がどのような状態であるかを判定する(S504)。検出部352は、“システム起動完了”したと判定した場合、処理を終了する。また、検出部352は、“システム起動処理中、またはメインプラットフォーム再起動中”と判定した場合、S506の処理に移行する。
【0089】
また、検出部352は、“起動失敗”と判定した場合、電源制御部37に対する要求の生成処理を行う(S505)。本実施形態では、例えば、情報処理システム1の起動が開始してから、所定時間経過した際に、サブプラットフォーム10−2〜10―8のうちいずれか一つ以上から起動完了通知を受信しなかった場合に、検出部352が“起動失敗”と判定する。
【0090】
電源制御部37に対する要求の生成処理について説明する。
図6は、本実施形態にかかる検出部352が行う要求の生成処理を示したフローチャートである。
【0091】
検出部352は、システム状態情報から、サブプラットフォーム10−2〜10−8の各々の電源状態を取得する(S601)。次に、検出部352は、システム状態情報から、サブプラットフォーム10−2〜10−8の各々の起動状態を取得する(S602)。これにより、検出部352は、起動失敗サブプラットフォームを特定できる。
【0092】
検出部352は、起動失敗サブプラットフォームに対する電源オフ・オン要求を示す情報を生成する(S603)。
【0093】
さらに、検出部352は、システム状態情報に、“サブボード再起動”に更新する(S604)。これにより、システム状態情報が、“起動失敗”から“サブボード再起動”に更新される。
【0094】
図5に戻り、検出部352は、起動監視用10秒タイマを設定する(S506)。つまり、本実施形態においては、システム起動が完了したか否かを10秒間隔で監視する。
【0095】
そして、検出部352は、設定されたタイマに従ってタイマイベント待ちを行う(S507)。
【0096】
その後、検出部352は、タイマイベントに従って処理を開始する(S508)。そして、検出部352は、システム状態情報を参照する(S509)。
【0097】
そして、検出部352は、システム状態がどのような状態であるかを判定する(S510)。システム状態が“異常パラメータ”の場合、処理を終了する。
【0098】
一方、検出部352は、システム状態が“システム起動処理中、またはメインプラットフォーム再起動中”の場合、受信制御部351が受信した最新のブートステータス情報を取得する(S511)。そして、検出部352は、ブートステータス情報に基づいて、システム状態情報を更新する(S512)。
【0099】
そして、検出部352は、更新された後のシステム状態がどのような状態であるかを判定する(S513)。検出部352は、“システム起動完了”したと判定した場合、処理を終了する。また、検出部352は、“システム起動処理中、またはメインプラットフォーム10−1再起動中”と判定した場合、S515の処理に移行する。
【0100】
S513において、検出部352は、“起動失敗”と判定した場合、電源制御部37に対する要求の生成処理を行う(S514)。なお、当該要求の生成処理は、S505と同様として説明を省略する。
【0101】
その後、検出部352は、起動監視用10秒タイマを設定する(S515)。そして、検出部352は、設定されたタイマに従ってタイマイベント待ちを行う(S516)。その後、再びS508から処理が行われる。
【0102】
一方、S510において、システム状態が“サブボード再起動”の場合、送信制御部353が、S505またはS514で生成された、起動失敗サブプラットフォームに対する電源オフ・オン要求を、電源制御部37に送信し(S517)、処理を終了する。
【0103】
本実施形態においては、上述した制御を行うことで、起動失敗サブプラットフォームに対して電源をオフにした後、電源をオンにする制御を実現できる。上述したように、起動失敗サブプラットフォームに対する電源オフ・オン要求を、電源制御部37に送信した後、処理を終了している。これにより、起動失敗サブプラットフォームに対する電源オフ・オン要求を一回だけ送信することができる。
【0104】
本実施形態においては、情報処理システム1が上述した構成を備えることで、起動失敗サブプラットフォームの強制終了で電源オフにするため、不要な電力の供給を抑止できる。さらにサブプラットフォームの適切な利用を実現できる。
【0105】
さらに、本実施形態においては、情報処理システム1が上述した構成を備えることで、起動失敗サブプラットフォームの強制終了で電源オフにした後、電源オンにすることで、まれに起動時にエラーが生じるようなサブプラットフォームの適切な利用を実現できる。
【0106】
本実施形態においては、情報処理システム1が上述した構成を備えることで、起動失敗サブプラットフォームについて、の強制終了で電源オフにした後、電源オンにする制御を一回のみ行うことで、情報処理システム1が利用できるまでの待機時間が長くなることを抑止できる。
【0107】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
本発明の第1態様に係る情報処理システムは、複数の情報処理装置と、複数の前記情報処理装置と接続するために複数の接続部を有する中継装置とを備える情報処理システムであって、前記中継装置は、前記複数の情報処理装置の各々に対して電力の供給を制御する電源制御部を備え、前記複数の情報処理装置のうちいずれか一つの情報処理装置は、前記情報処理システムの起動時に、前記複数の情報処理装置のうち少なくとも1つである第1の情報処理装置で起動が失敗したことを示した異常信号を受信する受信制御部と、前記異常信号に基づいて第1の情報処理装置で起動が失敗したことを検出した場合に、前記第1の情報処理装置に電力の供給を停止させる第1の指示信号の要求を前記電源制御部に送信する送信制御部と
本発明の第2態様に係る情報処理装置は、複数の情報処理装置と接続するために複数の第1の接続部を有する中継装置と、当該第1の接続部を介して接続するための第2の接続部と、前記複数の情報処理装置の起動時に、複数の情報処理装置のうち少なくとも1つである第1の情報処理装置で起動が失敗したことを示した異常信号を受信する受信制御部と、前記異常信号
本発明の第3態様に係るプログラムは、複数の情報処理装置と接続するために複数の第1の接続部を有する中継装置と、当該第1の接続部を介して接続可能なコンピュータに、前記複数の情報処理装置の起動時に、複数の情報処理装置のうち少なくとも1つである第1の情報処理装置で起動が失敗したことを示した異常信号を受信する受信ステップと、前記異常信号