(57)【要約】【課題】メインプロセッサの故障が発生した場合でもシステムとしての稼働率の低下を防止し、ライフサイクルコストの上昇を抑えることのできるマルチプロセッサシステムを得る。【解決手段】Ｃ０Ａ動作監視手段３０６は、ボードの起動処理を行うメインプロセッサの状態を監視する。Ｃ０Ａ動作監視手段３０６がメインプロセッサの非動作状態を検知した場合、Ｃ０Ａ隔離手段３０７はメインプロセッサとなっているプロセッサを隔離すると共に、特権管理表更新手段３０３は特権管理表を更新する。Ｃ０Ｂ通知手段３０８は、更新された特権管理表に基づいて新たなプロセッサに対してメインプロセッサとなることを通知する。【選択図】図５
2012173762.tif 000002
【特許請求の範囲】
【請求項１】
１枚のボードに複数のプロセッサを搭載するマルチプロセッサシステムにおいて、
前記複数のプロセッサのうち、前記ボードの起動処理を実行するメインプロセッサの状態を監視する状態監視手段と、
前記メインプロセッサが前記ボードの起動処理を実行できない場合、当該メインプロセッサが行う起動処理を前記複数のプロセッサにおける他のプロセッサに実行させるための起動指示手段とを備えることを特徴とするマルチプロセッサシステム。
【請求項２】
複数のプロセッサのうち、メインプロセッサを示す特権管理表を生成する特権管理表生成手段と、
前記特権管理表におけるメインプロセッサの更新を行う特権管理表更新手段とを備え、
前記特権管理表更新手段は、状態管理手段で前記メインプロセッサが前記ボードの起動処理を実行できないことを検知した場合または前記メインプロセッサからの指示により前記特権管理表を更新すると共に、起動指示手段は前記更新された特権管理表に基づいて他のプロセッサへの起動指示を行うことを特徴とする請求項１記載のマルチプロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１枚のボードに複数のプロセッサを搭載するマルチプロセッサシステムに関し、特に、その故障対策あるいはフェイルオーバーの構成に関する。
【背景技術】
【０００２】
近年のコンピュータシステムでは単体のプロセッサの性能不足を補う手段として複数のプロセッサを組み込んだマルチプロセッサシステムを利用するケースが増えている。マルチプロセッサシステムにおいて、基板１枚に搭載されるプロセッサ数が増えると、基板の起動処理を担うプロセッサが故障することがあり、他のプロセッサが故障していなくても基板が使用できなくなるケースが発生する。このような事態に対処するため、例えば特許文献１に記載したようなマルチプロセッサシステムでは、故障した基板を探索して予備基板に切り替える手段を提供している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−３３４６９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
複数のプロセッサを搭載した基板を利用するマルチプロセッサシステムにおいて、各基板を制御するメインプロセッサが故障すると、他のプロセッサは正常であっても基板が起動できない等の弊害が生じる。その結果、基板として使用できずに交換が必要となるため、システムの稼働率が低下し、また予備基板との交換を含むメンテナンスの頻度が増えてライフサイクルコスト上昇の要因となっていた。
【０００５】
この発明は上記のような課題を解決するためになされたもので、メインプロセッサの故障が発生した場合でもシステムとしての稼働率の低下を防止し、ライフサイクルコストの上昇を抑えることのできるマルチプロセッサシステムを得ることを目的とする。
【課題を解決するための手段】
【０００６】
この発明に係るマルチプロセッサシステムは、１枚のボードに複数のプロセッサを搭載するマルチプロセッサシステムにおいて、複数のプロセッサのうち、ボードの起動処理を実行するメインプロセッサの状態を監視する状態監視手段と、メインプロセッサがボードの起動処理を実行できない場合、メインプロセッサが行う起動処理を複数のプロセッサにおける他のプロセッサに実行させるための起動指示手段とを備えたものである。
【発明の効果】
【０００７】
この発明のマルチプロセッサシステムは、メインプロセッサがボードの起動処理を実行できない場合、メインプロセッサが行う起動処理を複数のプロセッサにおける他のプロセッサに実行させるようにしたので、メインプロセッサの故障が発生した場合でもシステムとしての稼働率の低下を防止し、ライフサイクルコストの上昇を抑えることができる。
【図面の簡単な説明】
【０００８】
【図１】この発明の実施の形態１によるマルチプロセッサシステムの全体構成図である。
【図２】この発明の実施の形態１のマルチプロセッサシステムにおけるデータ処理ボードの構成図である。
【図３】この発明の実施の形態１のマルチプロセッサシステムにおけるＣＰＵ＃０を示す構成図である。
【図４】この発明の実施の形態１のマルチプロセッサシステムにおけるＣＰＵ＃１を示す構成図である。
【図５】この発明の実施の形態１のマルチプロセッサシステムにおけるＦＰＧＡを示す構成図である。
【図６】この発明の実施の形態１のマルチプロセッサシステムにおける特権管理表を示す説明図である。
【図７】この発明の実施の形態１のマルチプロセッサシステムにおけるＰＣＩ  Ｅｘｐｒｅｓｓスイッチを示す構成図である。
【図８】この発明の実施の形態１のマルチプロセッサシステムにおける共有入出力を示す構成図である。
【図９】この発明の実施の形態１のマルチプロセッサシステムにおける正常時の起動処理のシーケンスを示す説明図である。
【図１０】この発明の実施の形態１のマルチプロセッサシステムにおけるメインプロセッサ故障時の起動処理のシーケンスを示す説明図である。
【図１１】この発明の実施の形態１のマルチプロセッサシステムにおける特権譲渡処理のシーケンスを示す説明図である。
【発明を実施するための形態】
【０００９】
実施の形態１．
図１は、この発明の実施の形態１によるマルチプロセッサシステムを示す構成図である。
図１に示すシステムは、複数のデータ処理ボード１ａ，１ｂ，１ｃとデータ供給ボード２とネットワーク３を備えている。データ処理ボード１ａ，１ｂ，１ｃは、それぞれ複数のプロセッサを搭載したボードであり、例えばレーダ信号処理といったデータ処理をボード単位で行うものである。データ供給ボード２は、データ処理ボード１ａ，１ｂ，１ｃにデータを供給するためのボードであり、ネットワーク３は、データ供給ボード２とデータ処理ボード１ａ，１ｂ，１ｃとを接続するＬＡＮ等のネットワークである。
【００１０】
図２は、データ処理ボード１ａ，１ｂ，１ｃの内部構成を示すものである。図１に示すそれぞれのデータ処理ボード１ａ，１ｂ，１ｃの構成は同様であるため、図２ではデータ処理ボード１として説明する。
データ処理ボード１は、ＣＰＵ＃０（１００）、ＣＰＵ＃１（２００）、ＦＰＧＡ（Field-Programmable Gate Array）３００、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ４００、ＬＡＮコントローラ＃０（５００）、ＬＡＮコントローラ＃１（６００）、共有入出力７００を備えている。
【００１１】
ＣＰＵ＃０（１００）は、図３に示すように、コアＡ（Ｃ０Ａ）１０１、コアＢ（Ｃ０Ｂ）１０２、ＦＰＧＡ通知手段１０３を備えたデュアルコアのＣＰＵである。ここで、Ｃ０Ａ１０１は、ＣＰＵ＃０（１００）において、データ処理ボード１の起動処理を行うメインプロセッサとしてのＣＰＵコアである。また、ＦＰＧＡ通知手段１０３は、Ｃ０Ａ１０１またはＣ０Ｂ１０２が正常に稼働していることをＦＰＧＡ３００に通知するための手段である。
【００１２】
ＣＰＵ＃１（２００）は、ＣＰＵ＃０（１００）と基本的な機能は同様であり、図４に示すように、コアＡ（Ｃ１Ａ）２０１、コアＢ（Ｃ１Ｂ）２０２を備えたデュアルコアのＣＰＵである。即ち、データ処理ボード１には四つのＣＰＵコアが搭載されているものである。
【００１３】
ＦＰＧＡ３００は、データ処理ボード１の起動処理を実行するメインプロセッサであるＣ０Ａ１０１の状態を監視する状態監視手段と、Ｃ０Ａ１０１がデータ処理ボード１の起動処理を実行できない場合、Ｃ０Ａ１０１が行う起動処理を他のプロセッサに実行させるための起動指示手段の機能を実現する機能部であり、図５に示すように、特権管理表生成手段３０１、特権管理表記憶手段３０２、特権管理表更新手段３０３、ＣＰＵ＃０インタフェース（Ｉ／Ｆ）３０４、ＣＰＵ＃０信号処理補助手段３０５、Ｃ０Ａ動作監視手段３０６，Ｃ０Ａ隔離手段３０７、Ｃ０Ｂ通知手段３０８、ＣＰＵ＃１インタフェース（Ｉ／Ｆ）３０９、ＣＰＵ＃１信号処理補助手段３１０を備えている。ここで、Ｃ０Ａ動作監視手段３０６が状態監視手段を構成し、Ｃ０Ａ隔離手段３０７とＣ０Ｂ通知手段３０８とで起動指示手段を構成している。
【００１４】
特権管理表生成手段３０１は、複数のプロセッサ（Ｃ０Ａ１０１〜Ｃ１Ｂ２０２）のうち、データ処理ボード１の起動処理を行うメインプロセッサを示す特権管理表を生成する手段であり、特権管理表記憶手段３０２は、特権管理表生成手段３０１で生成された特権管理表を記憶する手段である。また、特権管理表更新手段３０３は、Ｃ０Ａ動作監視手段３０６でＣ０Ａ１０１がデータ処理ボード１の起動処理を実行できないことを検知した場合またはＣ０Ａ１０１からの指示により特権管理表を更新する手段である。特権管理表は、図６に示すように、データ処理ボード１におけるＣ０Ａ１０１〜Ｃ１Ｂ２０２のボード起動の優先順位のパターンを示すものである。図６において、０〜３が優先順位を示しており、０が最も高い優先順位である。
【００１５】
ＣＰＵ＃０インタフェース３０４は、ＦＰＧＡ３００におけるＣＰＵ＃０（１００）とのインタフェースであり、ＣＰＵ＃０信号処理補助手段３０５〜Ｃ０Ｂ通知手段３０８が接続されている。ＣＰＵ＃０信号処理補助手段３０５は、ＦＰＧＡ３００において、ＣＰＵ＃０（１００）の信号処理に関する処理を行う手段である。Ｃ０Ａ動作監視手段３０６は、ＣＰＵ＃０（１００）におけるコアＡ１０１の動作状態の監視を行う手段であり、例えば、一定時間毎にＣ０Ａ１０１の生存確認を行う、といった手段を用いて監視を行う。Ｃ０Ａ隔離手段３０７は、Ｃ０Ａ動作監視手段３０６において、コアＡ１０１の動作状態を確認できない場合、コアＡ１０１を隔離処理する手段である。Ｃ０Ｂ通知手段３０８は、Ｃ０Ａ隔離手段３０７でコアＡ１０１が隔離された場合、コアＢ１０２に対してメインプロセッサであることを通知する手段である。また、ＣＰＵ＃１インタフェース３０９は、ＣＰＵ＃１（２００）とのインタフェースであり、ＣＰＵ＃１信号処理補助手段３１０は、ＦＰＧＡ３００においてＣＰＵ＃１（００）の信号処理に関する処理を行う手段である。
【００１６】
図２に戻り、ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ（以下、スイッチという）４００は、ＣＰＵ＃０（１００）とＣＰＵ＃１（２００）との共有入出力７００へのスイッチングを行う手段であり、図７に示すように、ＣＰＵ＃０が接続されるアップストリームポート（UpStream Port）４０１、ＣＰＵ＃１が接続される非透過ポート（Non-Transparent Port）４０２、共有入出力７００が接続されるダウンストリームポート（DownStream Port）４０３を備えている。
【００１７】
ＬＡＮコントローラ＃０（５００）及びＬＡＮコントローラ＃１（６００）は、それぞれＣＰＵ＃０（１００）及びＣＰＵ＃１（２００）とネットワーク３とのネットワーク制御を行うための制御部である。
共有入出力７００は、ＣＰＵ＃０（１００）とＣＰＵ＃１（２００）とが共有する入出力手段であり、図８に示すように、スイッチ４００に接続されるＰＣＩ  Ｅｘｐｒｅｓｓブリッジ７０１、ＵＳＢ（Universal Serial Bus）が接続されるＵＳＢコントローラ７０２、ＶＭＥバスが接続されるＶＭＥバスブリッジ７０３、ＰＭＣ（ＰＣＩメザニンカード）７０４、ＰＣＩ  Ｅｘｐｒｅｓｓブリッジ７０１とＵＳＢコントローラ７０２〜ＰＭＣ７０４とを接続するＰＣＩバス７０５を備えている。
【００１８】
次に、実施の形態１のマルチプロセッサシステムの動作について説明する。
図９は、正常時の起動処理のシーケンスを示す説明図である。
データ処理ボード１に電源が投入されると、４つのコア（Ｃ０Ａ１０１〜Ｃ１Ｂ２０２）は各々起動処理を実行し（ステップＳＴ９００、ＳＴ９０１）、ＦＰＧＡ３００は特権管理表に初期値を設定する（ステップＳＴ９０２）。即ち、ＦＰＧＡ３００における特権管理表更新手段３０３は、特権管理表記憶手段３０２に記憶されている特権管理表に初期値を設定する。初期値のメインプロセッサはＣ０Ａ１０１であり、Ｃ０Ａ動作監視手段３０６によってＣ０Ａ１０１の生存状態が確認される。その後、Ｃ１Ａ２０１とＣ１Ｂ２０２はスイッチ４００のアクセスがＣＰＵ＃０（１００）側から許可されるまで待機し（ステップＳＴ９０３〜ＳＴ９０４）、Ｃ０Ａ１０１がスイッチ４００を設定してＣＰＵ＃１（２００）側からのアクセスを許可する（ステップＳＴ９０５）。続いて、Ｃ１Ａ２０１とＣ１Ｂ２０２は共有入出力７００の初期設定完了を待ち、Ｃ０Ａ１０１がこれを設定する（ステップＳＴ９０６〜ＳＴ９０８）。以降は、Ｃ０Ａ１０１〜Ｃ１Ｂ２０２が、それぞれスイッチ４００を介して共有入出力７００とのデータ入出力を行うと共に、ＬＡＮコントローラ＃０（５００）及びＬＡＮコントローラ＃１（６００）を介してデータ処理ボード１外部とのデータ入出力を行う。
【００１９】
次に、メインプロセッサが故障した場合の動作について説明する。
図１０は、この場合の起動処理のシーケンスを示す説明図である。
通常はＣ０Ａ１０１がボード全体を制御するが、ステップＳＴ１０００，ＳＴ１００１の起動処理完了後、何らかの原因で故障する等で起動できない場合（ステップＳＴ１００２）は、ＦＰＧＡ３００からの動作監視に応答しなくなり（ステップＳＴ１００５〜ＳＴ１００６）、ＦＰＧＡ３００のＣ０Ａ動作監視手段３０６がＣ０Ａ１０１の故障を検出する。尚、Ｃ１Ａ２０１とＣ１Ｂ２０２は待機状態のままである（ステップＳＴ１００３〜ＳＴ１００４）。Ｃ０Ａ１０１の故障を検出したＦＰＧＡ３００では、Ｃ０Ａ隔離手段３０７がＣ０Ａ１０１を隔離する（ステップＳＴ１００７）と共に、特権管理表更新手段３０３は特権管理表を更新し（ステップＳＴ１００８）、Ｃ０Ｂ通知手段３０８は、共有入出力７００を初期設定する権限をＣ０Ｂ１０２に移した上で、Ｃ０Ｂ１０２に起動処理の実行を指示する（ステップＳＴ１００９）。以下、スイッチ４００を設定してＣＰＵ＃１（２００）から共有入出力７００へのアクセスを許可する処理（ステップＳＴ１０１０）と、共有入出力７００の初期設定（ステップＳＴ１０１１〜ＳＴ１０１３）は、Ｃ０Ｂ１０２が行う。この状態でＣ０Ａ１０１を除く三つのＣＰＵ（Ｃ０Ｂ１０２，Ｃ１Ａ２０１，Ｃ１Ｂ２０２）はＦＰＧＡ３００を利用することができ、また、共有入出力７００を含むボード上のリソースも通常通り利用できる。
【００２０】
次に図１１を用いて、Ｃ０Ａ１０１が故障せずに他のＣＰＵ（例えばＣ０Ｂ１０２）に特権を譲渡する動作を説明する。ここで、ステップＳＴ１１００〜ステップＳＴ１１０２の処理は図９におけるステップＳＴ９００〜ステップＳＴ９０２と同様である。
起動処理を終えたＣ０Ａ１０１は、ＦＰＧＡ３００の特権管理表を更新した後、Ｃ０Ｂ１０２に起動を指示して特権をＣ０Ｂ１０２に譲渡する（ステップＳＴ１１０３〜ＳＴ１１０５）。尚、Ｃ０Ａ１０１による特権管理表の更新は、ＣＰＵ＃０信号処理補助手段３０５を介して特権管理表更新手段３０３に更新指示を行うことによって実行される。その後の処理は、Ｃ１Ａ２０１とＣ１Ｂ２０２の待機状態（ステップＳＴ１１０６〜ＳＴ１１０７）の後、Ｃ０Ｂ１０２がスイッチ４００を設定してＣＰＵ＃１（２００）から共有入出力７００へのアクセスを許可する処理（ステップＳＴ１１０８）と、共有入出力７００の初期設定（ステップＳＴ１１０９〜ＳＴ１１１１）はＣ０Ｂ１０２が行う。ここで、図１０に示したＣ０Ａ１０１が故障したケースとでは、４つのＣＰＵ（Ｃ０Ａ１０１〜Ｃ１Ｂ２０２）全てがＦＰＧＡ３００や共有入出力７００を利用することができる点が異なる。
【００２１】
尚、上記実施の形態１では、メインプロセッサをＣ０Ａ１０１としたが、これに限定されるものではなく、どのプロセッサが起動処理を行う場合であっても同様に適用可能である。
【００２２】
このように実施の形態１では、基板上に予め搭載されている他のプロセッサを利用してメインプロセッサの処理を代行させることで、基板の延命策を提供することができる。実施の形態１では、故障単位がＣＰＵ（コア）であるため、基板上のＣＰＵが単独で故障した状況にも対応できる。また、メインプロセッサの処理を代行可能な他のプロセッサを基板内で確保できるので、外部に予備基板を用意する必要がない。または、予備基板への交換頻度を小さくでき、基板のライフサイクルコストを低減することができる。特許文献１に記載されているような従来のシステムでは故障基板を探索して予備基板に切り替える手段として故障計算機探索プロセスを基板外部に設けているが、実施の形態１では基板内でメインプロセッサから他のプロセッサへの切替えが行われるため、基板の外部に故障基板を監視するための機構を設ける必要がない。また、従来のシステムではディスク故障を課題としているが、実施の形態１ではディスクレスのシステムにも適用可能である。
【００２３】
以上説明したように、実施の形態１のマルチプロセッサシステムによれば、１枚のボードに複数のプロセッサを搭載するマルチプロセッサシステムにおいて、複数のプロセッサのうち、ボードの起動処理を実行するメインプロセッサの状態を監視する状態監視手段と、メインプロセッサがボードの起動処理を実行できない場合、メインプロセッサが行う起動処理を複数のプロセッサにおける他のプロセッサに実行させるための起動指示手段とを備えたので、メインプロセッサの故障が発生した場合でもシステムとしての稼働率の低下を防止することができ、ライフサイクルコストの上昇を抑えることができる。
【００２４】
また、実施の形態１のマルチプロセッサシステムによれば、複数のプロセッサのうち、メインプロセッサを示す特権管理表を生成する特権管理表生成手段と、特権管理表におけるメインプロセッサの更新を行う特権管理表更新手段とを備え、特権管理表更新手段は、状態管理手段でメインプロセッサがボードの起動処理を実行できないことを検知した場合またはメインプロセッサからの指示により特権管理表を更新すると共に、起動指示手段は更新された特権管理表に基づいて他のプロセッサへの起動指示を行うようにしたので、メインプロセッサの管理を容易に行うことができる。
【００２５】
尚、本願発明はその発明の範囲内において、実施の形態の任意の構成要素の変形、もしくは実施の形態の任意の構成要素の省略が可能である。
【符号の説明】
【００２６】
１，１ａ，１ｂ，１ｃ  データ処理ボード、１００  ＣＰＵ＃０、１０１  Ｃ０Ａ、１０２  Ｃ０Ｂ、１０３  ＦＰＧＡ通知手段、２００  ＣＰＵ＃１、２０１  Ｃ１Ａ、２０２  Ｃ１Ｂ、３００  ＦＰＧＡ、３０１  特権管理表生成手段、３０２  特権管理表記憶手段、３０３  特権管理表更新手段、３０４  ＣＰＵ＃０インタフェース、３０５  ＣＰＵ＃０信号処理補助手段、３０６  Ｃ０Ａ動作監視手段、３０７  Ｃ０Ａ隔離手段、３０８  Ｃ０Ｂ通知手段、３０９  ＣＰＵ＃１インタフェース、３１０  ＣＰＵ＃１信号処理補助手段、４００  ＰＣＩ  Ｅｘｐｒｅｓｓスイッチ、５００  ＬＡＮコントローラ＃０、６００  ＬＡＮコントローラ＃１、７００  共有入出力。
【図１】
2012173762.tif 000003
【図２】
2012173762.tif 000004
【図３】
2012173762.tif 000005
【図４】
2012173762.tif 000006
【図５】
2012173762.tif 000007
【図６】
2012173762.tif 000008
【図７】
2012173762.tif 000009
【図８】
2012173762.tif 000010
【図９】
2012173762.tif 000011
【図１０】
2012173762.tif 000012
【図１１】
2012173762.tif 000013