(57)【要約】【課題】宇宙環境下で適用できる、低コストで高信頼性かつ高性能なコンピュータシステムを実現する。【解決手段】プロセッサ２１０とメモリ２２０、２３０とこれらを調停する調停回路２４０を有する複数のプロセッサモジュール１１０と、上記複数のプロセッサモジュールの出力を多数決して障害を検出する多数決手段１４１と該障害検出手段により検出された障害回数を計数する計数手段１４３と該計数手段により計数された値から上記障害種別を判別する判別手段１４３を有するコントロールユニット１４０と、を具備する。【選択図】　図２
2004133496.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサとメモリとこれらを調停する調停回路を備える複数のプロセッサモジュールと、該複数のプロセッサモジュールと接続されたコントロールユニットと、を有し、
前記コントロールユニットは、前記複数のプロセッサモジュールの出力を多数決して前記プロセッサモジュールの障害を検出する多数決手段と、該障害検出手段により検出された障害回数を計数する計数手段と、該計数手段による計数値を用いて前記障害種別を判別する判別手段と、を具備したことを特徴とするコンピュータシステム。
【請求項２】
前記判別手段は、前記計数値と予め決められたしきい値とから前記障害種別を判別することを特徴とする請求項１に記載のコンピュータシステム。
【請求項３】
前記判別手段は、前記計数値が前記しきい値を超えると、前記障害種別が恒久性障害であると判断し、そうでない場合は一過性障害であると判断することを特徴とする請求項３に記載のコンピュータシステム。
【請求項４】
前記コントロールユニットは、第１のプロセッサモジュールの恒久性障害を検出すると、該第１のプロセッサモジュールとの接続を切断し、予め決められた論理に基づき第２のプロセッサモジュールを選択する選択手段を更に備えたことを特徴とする請求項３に記載のコンピュータシステム。
【請求項５】
前記コントロールユニットは、第１のプロセッサモジュールの一過性障害を検出すると、予め決められた論理に基き第２のプロセッサモジュールを選択し、該第２のプロセッサモジュールから必要な情報を前記第１のプロセッサモジュールに転送制御する転送制御手段を更に備えたことを特徴とする請求項３に記載のコンピュータシステム。
【請求項６】
前記一過性障害が検出されると、前記プロセッサモジュールの各々を待機状態に遷移させる状態遷移手段と、該状態遷移手段により遷移された状態を検出する状態検出手段と、該状態検出手段により状態が検出された後、前記プロセッサモジュールの各々を同期させる同期手段と、を更に有することを特徴とする請求項３乃至請求項５に記載のコンピュータシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のプロセッサモジュールを有するコンピュータシステムに関する。
【０００２】
【従来の技術】
近年、人工衛星システムに搭載されるコンピュータシステムの高信頼化が望まれている。しかし、衛星等の宇宙環境下では、地上における振動、温度、熱以外に放射線の影響を受ける。例えば、放射線に代表される高エネルギー粒子が、システム内のプロセッサやメモリ等の素子に影響を及ぼし、これらの素子に記憶されている情報（データ等）が反転してしまうという現象（シングルイベントアップセット（以下、ＳＥＵ））が高頻度に発生する。
【０００３】
従来、ＳＥＵ発生の低減する方法として、例えば、耐放射線特性の良い素子を使用する方法が用いられている。耐放射線特性の良い素子とは、製造段階で、特殊プロセス（例えば、ＳＯＩ（Ｓｉｌｉｃｏｎ−Ｏｎ−Ｉｎｓｕｌａｔｏｒ）プロセス）を用いて製造した素子等である。
【０００４】
又、ＳＥＵ発生を低減する他の従来技術として、例えば、装置内のプロセッサにおいて、ある命令を複数回実行して、その出力結果を比較するようにしたものがある。
【０００５】
【特許文献１】
特開平１１−３０６０８３号公報
【０００６】
【発明が解決しようとする課題】
昨今、人工衛星システムにおいて、コンピュータシステムによって制御される各種装置（例えば、観測装置）の高性能化が進んでいる。例えば、気象衛星によって観測、取得されるデータ量が多くなる傾向にある。それ故、上述の高信頼性と共に、観測装置によって取得されたデータを高速に処理する高性能なコンピュータシステムの必要性が高まってきている。
【０００７】
しかしながら、耐放射線特性の良い素子を使用する従来方法では、生産期間の長期化や製品品種が限定され、多大なコストを要する。又、最先端の民生品と同様な高信頼性かつ高性能素子を得ることは極めて困難である。
【０００８】
更に、装置内のプロセッサにおいて、ある命令を複数回実行して、その出力結果を比較するようにした従来技術では、ソフトウェアの規模が大きくなり、コスト高となる。
【０００９】
本発明は、宇宙環境下で適用できる、低コストで高信頼性かつ高性能なコンピュータシステムを実現することにある。
【００１０】
【課題を解決するための手段】
上記目的を達成するために、本発明によるコンピュータシステムは、民生の高性能プロセッサとメモリとこれらを調停する調停回路を備える複数のプロセッサモジュールと、これら複数のプロセッサモジュールと接続されたコントロールユニットとを有する。コントロールユニットは、複数のプロセッサモジュールの出力を多数決することにより、プロセッサモジュールの障害を検出する多数決手段と、該障害検出手段により検出された障害回数を計数する計数手段と、該計数手段による計数値を用いて障害種別を判別する判別手段と、を具備したことを特徴とする。判別手段は、上記計数値と予め決められたしきい値とから障害種別を判別し、計数値がしきい値を超えると、恒久性障害であると判断し、そうでない場合は一過性障害であると判断することを特徴する。
【００１１】
又、本発明によるコンピュータシステムは、第１のプロセッサモジュールの恒久性障害を検出すると、該第１のプロセッサモジュールとの接続を切断し、予め決められた論理に基づき第２のプロセッサモジュールを選択する選択手段を更に備えたことを特徴とする。
【００１２】
更に、本発明によるコンピュータシステムは、上記一過性の障害を検出すると、予め決められた論理に基き第２のプロセッサモジュールを選択し、該第２のプロセッサモジュールから必要な情報を上記第１のプロセッサモジュールに転送制御する転送制御手段を更に備えていることを特徴とする。
【００１３】
【発明の実施の形態】
以下、本発明の実施例について図面を用いて説明する。　図１は、本発明によるコンピュータシステムを適用した人工衛星システムの簡略構成を示す図である。
【００１４】
メインコンピュータ１０は、バス４０により、本発明による複数のコンピューシステム（１００−１、１００−２、…１００−Ｎ）、蓄積装置２０、送受信装置３０と接続されており、これらを制御する。衛星。コンピュータシステムの各々（１００−１、１００−２、…１００−Ｎ）は、観測装置（６０−１、６０−２、…６０−Ｎ）を制御する。又、本発明によるコンピュータシステムは、高速プロセッサを有する複数のプロセッサモジュールを備えており、これらプロセッサモジュールの障害を多数決論理によって検出する（詳細は後述）。観測装置の各々は、宇宙を観測し、データを取り込む。取り込まれた観測データは、コンピュータシステム１００等によって圧縮等の制御がなされる。蓄積装置２０は、コンピュータシステム１００等によって制御されたデータ等を一時蓄積する。送受信装置３０は、地上におけるシステムとの通信を行い、例えば、蓄積装置２０からデータを読み出し、地上システムに伝送する。
【００１５】
図２は、コンピュータシステム１００の構成を示す図である。
【００１６】
コンピュータシステム１００は、複数のプロセッサ（例えば、ＣＰＵ）モジュール１１０（本実施例では、１１０Ａ、１１０Ｂ、１１０Ｃ）と、これらに内部バス３２０により接続されたコントロールユニット１４０と、クロック供給源１５０とを備えている。
【００１７】
ＣＰＵモジュール１１０の各々は、ＣＰＵ（プロセッサ）２１０と、ＣＰＵ２１０が実行するプログラムを格納するメモリ（例えば、ＲＯＭ２２０）と、データ等の情報を記憶するメモリ（例えば、ＲＡＭ２３０）と、これらの素子を調停する調停回路２４０とを備えている。調停回路２４０及びＲＯＭ２２０は、内部バス３１０によりコントロールユニット１４０と接続されている。又、ＣＰＵモジュール１１０間は、専用バス３４０により接続されている。本実施例におけるＣＰＵ２１０は、民生用の高速かつ高性能なものを使用している。
【００１８】
コントロールユニット１４０は、ＣＰＵモジュール１１０から出力されるデータを多数決して障害を検出する多数決回路１４１と、検出された障害をカウント（計数）すると共に、障害種別を判別する異常回数カウンタ１４３と、分配回路１４２等を備えている（詳細は後述）。多数決回路の出力は、外部バス３５０を介してコンピュータシステム１００と接続される装置（機器）等に出力される。外部装置から外部バス３５０を介して入力されたデータは、分配回路１４２により、内部バス３１０、３２０、３３０を介して各ＣＰＵモジュールに分配される。又、ＣＰＵモジュール１１０とコントロールユニット１４０は、クロック供給源１５０から出力される共通クロックにより動作しており、各ＣＰＵモジュールは、同じソフトウェア命令を実行している状態にある。
【００１９】
以上の構成により、本実施例では、例えば、ある１つのＣＰＵモジュールにおいて、ＳＥＵの影響によってソフトエラーが発生し、出力データの異常や出力タイミングの位相ずれ等が発生すると、上述の多数決回路１４１によって、これらの異常（障害）を検出することができる。この異常検出は、異常回数カウンタ１４３によってカウントされる。又、異常回数カウンタ１４３は、カウント値が予め決められたしきい値を超えると、発生した障害が恒久性障害と認識し、そうでない場合は、一過性障害と認識する。以下、本実施例では、しきい値とは、例えば、ある単位時間あたりに異常回数のカウントがＮ回を超えた時とする。単位時間及びカウント回数は、ＣＰＵモジュールに備えるＣＰＵ２１０、ＲＯＭ２２０、ＲＡＭ２３０、調停回路２４０等の放射線特性や、宇宙用コンピュータシステムを搭載する人工衛星の軌道情報等に基づき決定される。
【００２０】
図３は、ＣＰＵモジュール１１０に備える調停回路２４０の構成を示す図である。
【００２１】
調停回路２４０は、ＲＡＭ２３０と接続されるＤＭＡ制御部２４１と専用バス３４０と接続されるゲート回路２４２とを備えている。上記構成により、ＣＰＵモジュール間でＲＡＭ２３０に記憶されている情報（データ）の転送が可能となる。なお、ゲート回路２４２は、コントロールユニット１４０によって方向制御等がなされる。
【００２２】
図４は、コントロールユニット１４０の構成を示す図である。
【００２３】
コントロールユニット１４０は、上述の多数決回路１４１、分配回路１４２、異常回数カウンタ１４３以外に，リセット生成部１４４と、ＤＭＡ指示部１４５と、割り込み生成部１４６と、ＣＰＵ状態検出部１４７と、マスタ選択部１４９とを備えている。
【００２４】
リセット生成部１４４は、多数決回路１４１により検出した異常ＣＰＵモジュールをリセット（初期化）する。
又、リセット生成部１４４は、リセット後のＣＰＵモジュールの動作の有無を確認するためのタイムアウトカウンタ１４８を備えている。ＤＭＡ指示部１４５は、後述のデータ送信割り込み指示、及びデータ受信割り込み指示を割込生成部１４６に対して行う。又、ＤＭＡ指示部１４５は、各ＣＰＵモジュール１１０に備えるＤＭＡ制御部２４１に対してＤＭＡ転送制御等の指示を行う。マスタ選択部１４９は、図８に示される論理回路によって、多数決回路１４１によりＣＰＵモジュール（例えば、１１０Ａ）の異常が検出されると、その他のＣＰＵモジュール（１１０Ｂ、１１０Ｃ）から正常なデータを転送可能なＣＰＵモジュールを一意に決める。割込生成部１４６は、外部バス３５０からの割込み要求、及びＤＭＡ指示部１４５からの割込み要求を受けて、各ＣＰＵモジュール１１０内に備えるＣＰＵ２１０に対して割込み信号を出力する。ＣＰＵ状態検出部１４７は、各ＣＰＵモジュール１１０内のＣＰＵ２１０が待機状態に遷移したことを検出する。
【００２５】
図５は、一過性の障害が発生した時の動作を説明するシーケンス図である。
【００２６】
ここで、多数決回路１４１により異常が検出されたＣＰＵモジュール（例えば、１１０Ａ）を異常系ＣＰＵモジュール、多数決回路１４１に正常出力を行い、かつマスタ選択部１４９により一意に決められたＣＰＵモジュール（例えば、１１０Ｂ）を正常系ＣＰＵモジュール、その他の正常なＣＰＵモジュール（例えば、１１０Ｃ）を待機系モジュール、と定義する。
【００２７】
各ＣＰＵモジュールは、多数決回路１４１にデータを出力する（ステップＳ５００Ａ、５００Ｂ、５００Ｃ）。多数決回路１４１は、これらの出力データを多数決し異常データを検出すると（Ｓ５１０）、異常データを出力した異常系ＣＰＵモジュール１１０Ａに対してリセット信号を発行する。リセット信号により、異常系モジュール１１０Ｂは、初期化される（Ｓ５２０）。異常系ＣＰＵモジュール１１０Ａは、初期化後、正常系ＣＰＵモジュール１１０Ｂに備えるＣＰＵ内部情報、ＲＡＭに記憶されている情報を受け取るため、ＤＭＡ指示部１４５に対してデータ要求指示を行う（Ｓ５２１）。ＤＭＡ指示部１４５がデータ要求指示を受けると、割込生成部１４６に対して、データ送信割込みの発行を指示する。これは、正常系モジュール１１０Ａ及び待機系ＣＰＵモジュール１１０Ｃに対して、それまで実行していたアプリケーションプログラムを一時中断の要求を行うためである。又、この時、異常系モジュール１１０Ａに対してもデータ受信割込みの発行を指示して、正常系ＣＰＵモジュール１１０Ｂからのデータ転送にそなえる。正常系ＣＰＵモジュール１１０Ｂ及び待機系ＣＰＵモジュール１１０Ｃは、データ送信割込みの処理中にマスタ選択の有無を判定する。マスタ選択を受けている正常系ＣＰＵモジュール１１０Ｂは、自ＣＰＵモジュール内のＣＰＵ２１０Ｂと調停回路２４０Ｂ内のデータをＲＡＭ２３０Ｂ上へ格納する（Ｓ５３０）。ここで、ＲＡＭ２３０Ｂ上のデータは、一時中断したアプリケーションプログラムを再開するために必要なデータであり、ＣＰＵ２１０Ｂ内のプログラムカウンタに代表されるレジスタ情報、調停回路内部の情報、アプリケーションプログラムが使用するＲＡＭ上の変数やスタック情報である。
【００２８】
一方、待機系ＣＰＵモジュール１１０Ｃは、この時点で、ソフトウェアの待機遷移命令を発行して待機状態に遷移する（Ｓ５４０）。正常系ＣＰＵモジュール１１０Ｂでは、ＤＭＡ制御部２４１Ｂに対してＤＭＡ転送開始を指示する（Ｓ５５０）。ＤＭＡ制御部２４１Ｂは、正常系ＣＰＵモジュール１１０ＢのＲＡＭ２３０Ｂ上のデータを読み出し、ＣＰＵモジュール間専用バス３４０を介して異常系ＣＰＵモジュール１１０ＡのＲＡＭ２３０Ａにデータを転送する（Ｓ５５１）。このときＤＭＡ指示部１４５により待機系ＣＰＵモジュール１１０Ｃのゲート回路２４２Ｃは閉じられている。又、正常系ＣＰＵモジュール１１０Ｂから異常系ＣＰＵモジュール１１０Ａに対してデータ転送する方向にゲート回路２４２Ａ、Ｂが方向制御されている。ＤＭＡ転送が終了すると正常系ＣＰＵモジュール１１０Ｂでは、待機遷移命令が発行しされて待機状態に遷移する（Ｓ５６０）。一方、異常系ＣＰＵモジュール１１０Ａでは、ＲＡＭ２３０Ａ上に転送されたデータの中からＣＰＵ及び調停回路内部データが読み出されて、それぞれ自系ＣＰＵ２１０Ａ及び調停回路２４０Ａに設定される（Ｓ５７０）。設定後、待機系ＣＰＵモジュール１１０Ｃでは、待機遷移命令を発行して待機状態へ遷移する（Ｓ５８０）。
【００２９】
ＣＰＵモジュール１１０の各々が待機状態になったことをＣＰＵ状態検出部１４７により検出されると（Ｓ５９０、Ｓ５９１、Ｓ５９２）、割込み生成部１４６が待機状態解除割込みをＣＰＵモジュール１１０の各々に対して発行する（Ｓ５９３）。ここで、待機状態解除割込みは、先に発行しているデータ受信割込み、データ送信割込みよりも優先度の高い割込みとすることで各ＣＰＵ２１０に対して多重割込みを認識させることが出来る。又、待機状態解除割込みをＣＰＵモジュール１１０の各々に対して同じタイミングで入力することにより各ＣＰＵモジュールが待機状態から実行状態に遷移し、再び各ＣＰＵ２１０が同期することが出来る。同期がとれると、待機状態解除割込みから復帰する。正常系ＣＰＵモジュール１１０Ｂ及び待機系ＣＰＵモジュール１１０Ｃでは、データ送信割込みの処理を再開される。同様に、異常系ＣＰＵモジュール１１０Ａでも、データ受信割込みの処理に復帰する。待機遷移命令以後のソフトウェア命令を、データ送信割込み及びデータ受信割込みと共に同じ命令とすることにより、割込みのレベルは異なるものの処理の同期がとれる。各ＣＰＵモジュールの同期再開後にデータ送信割込み及びデータ受信割込みから復帰することにより、多数決回路においてエラーを検出した直後のアプリケーションプログラムに復帰することが出来る（Ｓ５９５）。多数決回路によりソフトエラーが検出された場合には、上述のように正常なＣＰＵモジュール１１０Ｂのデータを転送することにより一致させる（以下、再構成と呼ぶ）。例えば、ソフトエラー訂正の難しいＣＰＵ内部のデータにソフトエラーが発生した場合にもそれまで実行していたアプリケーションプログラムを実行することが出来る。一方、ＣＰＵモジュールの再構成中に異常系ＣＰＵモジュールが応答しない恒久障害が発生することも考えられる。この場合、リセット生成部に備えられたタイムアウトカウンタ１４８により異常系ＣＰＵモジュールの障害を検出する。その後、マスタ選択部１４９によりマスタ選択を受けたＣＰＵモジュールを、動作を継続するＣＰＵモジュールとして定めて、他方のＣＰＵモジュールおよび再構成中の障害を検出した異常系ＣＰＵモジュールについてはコントロールユニットに接続されたＣＰＵモジュールの内部バスおよび制御信号が切り離す。これにより信頼度は低下するもののある一つのＣＰＵモジュールに恒久障害が発生した場合にも、それまでのアプリケーションプログラムを継続することが出来る。
【００３０】
図６は、正常系ＣＰＵモジュール及び待機系ＣＰＵモジュールの状態遷移について説明するシーケンス図である。
【００３１】
通常はアプリケーションプログラムが動作しており（ステップＳ６００）、多数決結果に異常が発生すると、異常系ＣＰＵモジュールよりデータ送信要求が発生するため、それまでのアプリケーションプログラムを一時停止してデータ送信割込みを実行する（Ｓ６１０）。待機系ＣＰＵモジュールではマスタ選択を受けていないため、直ちに待機遷移命令を発行して待機状態へ遷移する。
【００３２】
一方、正常系ＣＰＵモジュールでは、まずＣＰＵ内部データをＲＡＭ上へ格納し、ＲＡＭ上のデータを異常系ＣＰＵモジュールに転送した上で待機遷移命令を発行して待機状態へ遷移する（Ｓ６２０）。ＣＰＵモジュールの各々が待機状態に遷移したことをＣＰＵ状態検出部１４７が検出すると、更に上位の割込みである待機状態解除割込みを実行して各ＣＰＵモジュールの同期をとる。同期再開後は各割込み処理から順次復帰し（Ｓ６４０）、最終的にはそれまで実行してきたアプリケーションプログラムの処理を再開する（Ｓ６５０）。
【００３３】
図７は、異常系ＣＰＵモジュールの状態遷移について説明するシーケンス図である。
【００３４】
アプリケーションプログラムの動作中に、多数決回路１４１により異常が検出されると、リセット生成部１４４から異常系ＣＰＵモジュールに対してリセット信号が発行される。リセット信号により、異常系ＣＰＵモジュールではリセット処理を実行する（ステップＳ７００）。リセット処理にてＣＰＵや調停回路の初期設定が完了すると、マスタ選択部１４９にてマスタ選択を受けた正常系ＣＰＵモジュールに対してデータ要求割込みを発行するとともに、自ＣＰＵモジュールでもデータ受信割込みを実行する（Ｓ７１０）。正常系ＣＰＵモジュールからの受信データをＣＰＵおよび調停回路に設定後、待機遷移命令を発行して待機状態へ遷移する（Ｓ７２０）。ＣＰＵモジュールの各々が待機状態に遷移したことをＣＰＵ状態検出部１４７が検出すると、更に上位の割込みである待機状態解除割込みを実行して各ＣＰＵモジュールの同期をとる。同期再開後は各割込み処理から順次復帰し（Ｓ７４０）、最終的には正常なＣＰＵモジュールから転送されたデータを使用してそれまで実行してきたアプリケーションプログラムの処理を再開する（Ｓ７５０）。
【００３５】
次に、本発明における恒久故障を検出した場合の流れについて説明する。図１において、多数決回路１４１により出力の不一致を検出された場合には、一過性障害時の処理が行われると共に、異常回数カウンタ１４３にその回数がカウントアップされる。異常回数カウンタは、図９に示すカウンタ回路により構成され、多数決結果が不一致であった場合には、ＣＰＵモジュール個別に多数決結果不一致フラグがカウンタに入力されることでカウントアップされる。このカウンタは、ある一定時間毎にクリアされて、その一定時間はＣＰＵモジュール１１０のソフトエラー発生確率とＣＰＵモジュールの再構成時間により決めることが出来る。一定時間内に多数決回路における不一致が頻発すると、異常回数カウンタよりＣＰＵモジュール毎に恒久障害発生フラグが出力され、コントロールユニットに接続されたＣＰＵモジュールの内部バスおよび制御信号が切り離す。一方、残り２つのＣＰＵモジュールだけでは多数決回路が成立しないため、マスタ選択部１４９によりマスタ選択を受けたＣＰＵモジュールを、動作を継続するＣＰＵモジュールとして定めて、他方のＣＰＵモジュールについてはコントロールユニットに接続されたＣＰＵモジュールの内部バスおよび制御信号が切り離す。これにより、一つのＣＰＵモジュールに恒久障害が発生した場合にも、それまでのアプリケーションプログラムを継続することが出来る。従って、ＣＰＵのバスサイクル毎に多数決処理を行う必要がない。
【００３６】
【発明の効果】
本発明によれば、宇宙環境下で、低コストによる高信頼性かつ高性能なコンピュータシステムを実現することができる。
【図面の簡単な説明】
【図１】本発明によるコンピュータシステムを適用する人工衛星システムの簡略構成を示す図。
【図２】本発明によるコンピュータシステム１００の構成を示す図。
【図３】ＣＰＵモジュール１１０に備える調停回路２４０の構成を示す図。
【図４】コントロールユニット１４０の構成を示す図。
【図５】一過性の障害が発生した時の動作を説明するシーケンス図。
【図６】正常系ＣＰＵモジュール及び待機系ＣＰＵモジュールの状態遷移について説明するシーケンス図。
【図７】異常系ＣＰＵモジュールの状態遷移について説明するシーケンス図。
【図８】マスタを選択する回路図。
【図９】異常回数カウンタの回路図。
【符号の説明】
１００…コンピュータシステム、１１０…ＣＰＵモジュール、１４０…コントロールユニット、１４１…多数決回路、１４３…異常回数カウンタ、１４９…マスタ選択部、１５０…クロック供給源、２１０…ＣＰＵ、２２０…ＲＯＭ、２３０…ＲＡＭ、２４０…調停回路。
【図１】
2004133496.tif 000003
【図２】
2004133496.tif 000004
【図３】
2004133496.tif 000005
【図４】
2004133496.tif 000006
【図５】
2004133496.tif 000007
【図６】
2004133496.tif 000008
【図７】
2004133496.tif 000009
【図８】
2004133496.tif 000010
【図９】
2004133496.tif 000011