JP2004133496A - コンピュータシステム - Google Patents
コンピュータシステム Download PDFInfo
- Publication number
- JP2004133496A JP2004133496A JP2002294374A JP2002294374A JP2004133496A JP 2004133496 A JP2004133496 A JP 2004133496A JP 2002294374 A JP2002294374 A JP 2002294374A JP 2002294374 A JP2002294374 A JP 2002294374A JP 2004133496 A JP2004133496 A JP 2004133496A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- computer system
- failure
- cpu module
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Hardware Redundancy (AREA)
Abstract
【課題】宇宙環境下で適用できる、低コストで高信頼性かつ高性能なコンピュータシステムを実現する。
【解決手段】プロセッサ210とメモリ220、230とこれらを調停する調停回路240を有する複数のプロセッサモジュール110と、上記複数のプロセッサモジュールの出力を多数決して障害を検出する多数決手段141と該障害検出手段により検出された障害回数を計数する計数手段143と該計数手段により計数された値から上記障害種別を判別する判別手段143を有するコントロールユニット140と、を具備する。
【選択図】 図2
【解決手段】プロセッサ210とメモリ220、230とこれらを調停する調停回路240を有する複数のプロセッサモジュール110と、上記複数のプロセッサモジュールの出力を多数決して障害を検出する多数決手段141と該障害検出手段により検出された障害回数を計数する計数手段143と該計数手段により計数された値から上記障害種別を判別する判別手段143を有するコントロールユニット140と、を具備する。
【選択図】 図2
Description
【0001】
【発明の属する技術分野】
本発明は、複数のプロセッサモジュールを有するコンピュータシステムに関する。
【0002】
【従来の技術】
近年、人工衛星システムに搭載されるコンピュータシステムの高信頼化が望まれている。しかし、衛星等の宇宙環境下では、地上における振動、温度、熱以外に放射線の影響を受ける。例えば、放射線に代表される高エネルギー粒子が、システム内のプロセッサやメモリ等の素子に影響を及ぼし、これらの素子に記憶されている情報(データ等)が反転してしまうという現象(シングルイベントアップセット(以下、SEU))が高頻度に発生する。
【0003】
従来、SEU発生の低減する方法として、例えば、耐放射線特性の良い素子を使用する方法が用いられている。耐放射線特性の良い素子とは、製造段階で、特殊プロセス(例えば、SOI(Silicon−On−Insulator)プロセス)を用いて製造した素子等である。
【0004】
又、SEU発生を低減する他の従来技術として、例えば、装置内のプロセッサにおいて、ある命令を複数回実行して、その出力結果を比較するようにしたものがある。
【0005】
【特許文献1】
特開平11−306083号公報
【0006】
【発明が解決しようとする課題】
昨今、人工衛星システムにおいて、コンピュータシステムによって制御される各種装置(例えば、観測装置)の高性能化が進んでいる。例えば、気象衛星によって観測、取得されるデータ量が多くなる傾向にある。それ故、上述の高信頼性と共に、観測装置によって取得されたデータを高速に処理する高性能なコンピュータシステムの必要性が高まってきている。
【0007】
しかしながら、耐放射線特性の良い素子を使用する従来方法では、生産期間の長期化や製品品種が限定され、多大なコストを要する。又、最先端の民生品と同様な高信頼性かつ高性能素子を得ることは極めて困難である。
【0008】
更に、装置内のプロセッサにおいて、ある命令を複数回実行して、その出力結果を比較するようにした従来技術では、ソフトウェアの規模が大きくなり、コスト高となる。
【0009】
本発明は、宇宙環境下で適用できる、低コストで高信頼性かつ高性能なコンピュータシステムを実現することにある。
【0010】
【課題を解決するための手段】
上記目的を達成するために、本発明によるコンピュータシステムは、民生の高性能プロセッサとメモリとこれらを調停する調停回路を備える複数のプロセッサモジュールと、これら複数のプロセッサモジュールと接続されたコントロールユニットとを有する。コントロールユニットは、複数のプロセッサモジュールの出力を多数決することにより、プロセッサモジュールの障害を検出する多数決手段と、該障害検出手段により検出された障害回数を計数する計数手段と、該計数手段による計数値を用いて障害種別を判別する判別手段と、を具備したことを特徴とする。判別手段は、上記計数値と予め決められたしきい値とから障害種別を判別し、計数値がしきい値を超えると、恒久性障害であると判断し、そうでない場合は一過性障害であると判断することを特徴する。
【0011】
又、本発明によるコンピュータシステムは、第1のプロセッサモジュールの恒久性障害を検出すると、該第1のプロセッサモジュールとの接続を切断し、予め決められた論理に基づき第2のプロセッサモジュールを選択する選択手段を更に備えたことを特徴とする。
【0012】
更に、本発明によるコンピュータシステムは、上記一過性の障害を検出すると、予め決められた論理に基き第2のプロセッサモジュールを選択し、該第2のプロセッサモジュールから必要な情報を上記第1のプロセッサモジュールに転送制御する転送制御手段を更に備えていることを特徴とする。
【0013】
【発明の実施の形態】
以下、本発明の実施例について図面を用いて説明する。 図1は、本発明によるコンピュータシステムを適用した人工衛星システムの簡略構成を示す図である。
【0014】
メインコンピュータ10は、バス40により、本発明による複数のコンピューシステム(100−1、100−2、…100−N)、蓄積装置20、送受信装置30と接続されており、これらを制御する。衛星。コンピュータシステムの各々(100−1、100−2、…100−N)は、観測装置(60−1、60−2、…60−N)を制御する。又、本発明によるコンピュータシステムは、高速プロセッサを有する複数のプロセッサモジュールを備えており、これらプロセッサモジュールの障害を多数決論理によって検出する(詳細は後述)。観測装置の各々は、宇宙を観測し、データを取り込む。取り込まれた観測データは、コンピュータシステム100等によって圧縮等の制御がなされる。蓄積装置20は、コンピュータシステム100等によって制御されたデータ等を一時蓄積する。送受信装置30は、地上におけるシステムとの通信を行い、例えば、蓄積装置20からデータを読み出し、地上システムに伝送する。
【0015】
図2は、コンピュータシステム100の構成を示す図である。
【0016】
コンピュータシステム100は、複数のプロセッサ(例えば、CPU)モジュール110(本実施例では、110A、110B、110C)と、これらに内部バス320により接続されたコントロールユニット140と、クロック供給源150とを備えている。
【0017】
CPUモジュール110の各々は、CPU(プロセッサ)210と、CPU210が実行するプログラムを格納するメモリ(例えば、ROM220)と、データ等の情報を記憶するメモリ(例えば、RAM230)と、これらの素子を調停する調停回路240とを備えている。調停回路240及びROM220は、内部バス310によりコントロールユニット140と接続されている。又、CPUモジュール110間は、専用バス340により接続されている。本実施例におけるCPU210は、民生用の高速かつ高性能なものを使用している。
【0018】
コントロールユニット140は、CPUモジュール110から出力されるデータを多数決して障害を検出する多数決回路141と、検出された障害をカウント(計数)すると共に、障害種別を判別する異常回数カウンタ143と、分配回路142等を備えている(詳細は後述)。多数決回路の出力は、外部バス350を介してコンピュータシステム100と接続される装置(機器)等に出力される。外部装置から外部バス350を介して入力されたデータは、分配回路142により、内部バス310、320、330を介して各CPUモジュールに分配される。又、CPUモジュール110とコントロールユニット140は、クロック供給源150から出力される共通クロックにより動作しており、各CPUモジュールは、同じソフトウェア命令を実行している状態にある。
【0019】
以上の構成により、本実施例では、例えば、ある1つのCPUモジュールにおいて、SEUの影響によってソフトエラーが発生し、出力データの異常や出力タイミングの位相ずれ等が発生すると、上述の多数決回路141によって、これらの異常(障害)を検出することができる。この異常検出は、異常回数カウンタ143によってカウントされる。又、異常回数カウンタ143は、カウント値が予め決められたしきい値を超えると、発生した障害が恒久性障害と認識し、そうでない場合は、一過性障害と認識する。以下、本実施例では、しきい値とは、例えば、ある単位時間あたりに異常回数のカウントがN回を超えた時とする。単位時間及びカウント回数は、CPUモジュールに備えるCPU210、ROM220、RAM230、調停回路240等の放射線特性や、宇宙用コンピュータシステムを搭載する人工衛星の軌道情報等に基づき決定される。
【0020】
図3は、CPUモジュール110に備える調停回路240の構成を示す図である。
【0021】
調停回路240は、RAM230と接続されるDMA制御部241と専用バス340と接続されるゲート回路242とを備えている。上記構成により、CPUモジュール間でRAM230に記憶されている情報(データ)の転送が可能となる。なお、ゲート回路242は、コントロールユニット140によって方向制御等がなされる。
【0022】
図4は、コントロールユニット140の構成を示す図である。
【0023】
コントロールユニット140は、上述の多数決回路141、分配回路142、異常回数カウンタ143以外に,リセット生成部144と、DMA指示部145と、割り込み生成部146と、CPU状態検出部147と、マスタ選択部149とを備えている。
【0024】
リセット生成部144は、多数決回路141により検出した異常CPUモジュールをリセット(初期化)する。
又、リセット生成部144は、リセット後のCPUモジュールの動作の有無を確認するためのタイムアウトカウンタ148を備えている。DMA指示部145は、後述のデータ送信割り込み指示、及びデータ受信割り込み指示を割込生成部146に対して行う。又、DMA指示部145は、各CPUモジュール110に備えるDMA制御部241に対してDMA転送制御等の指示を行う。マスタ選択部149は、図8に示される論理回路によって、多数決回路141によりCPUモジュール(例えば、110A)の異常が検出されると、その他のCPUモジュール(110B、110C)から正常なデータを転送可能なCPUモジュールを一意に決める。割込生成部146は、外部バス350からの割込み要求、及びDMA指示部145からの割込み要求を受けて、各CPUモジュール110内に備えるCPU210に対して割込み信号を出力する。CPU状態検出部147は、各CPUモジュール110内のCPU210が待機状態に遷移したことを検出する。
【0025】
図5は、一過性の障害が発生した時の動作を説明するシーケンス図である。
【0026】
ここで、多数決回路141により異常が検出されたCPUモジュール(例えば、110A)を異常系CPUモジュール、多数決回路141に正常出力を行い、かつマスタ選択部149により一意に決められたCPUモジュール(例えば、110B)を正常系CPUモジュール、その他の正常なCPUモジュール(例えば、110C)を待機系モジュール、と定義する。
【0027】
各CPUモジュールは、多数決回路141にデータを出力する(ステップS500A、500B、500C)。多数決回路141は、これらの出力データを多数決し異常データを検出すると(S510)、異常データを出力した異常系CPUモジュール110Aに対してリセット信号を発行する。リセット信号により、異常系モジュール110Bは、初期化される(S520)。異常系CPUモジュール110Aは、初期化後、正常系CPUモジュール110Bに備えるCPU内部情報、RAMに記憶されている情報を受け取るため、DMA指示部145に対してデータ要求指示を行う(S521)。DMA指示部145がデータ要求指示を受けると、割込生成部146に対して、データ送信割込みの発行を指示する。これは、正常系モジュール110A及び待機系CPUモジュール110Cに対して、それまで実行していたアプリケーションプログラムを一時中断の要求を行うためである。又、この時、異常系モジュール110Aに対してもデータ受信割込みの発行を指示して、正常系CPUモジュール110Bからのデータ転送にそなえる。正常系CPUモジュール110B及び待機系CPUモジュール110Cは、データ送信割込みの処理中にマスタ選択の有無を判定する。マスタ選択を受けている正常系CPUモジュール110Bは、自CPUモジュール内のCPU210Bと調停回路240B内のデータをRAM230B上へ格納する(S530)。ここで、RAM230B上のデータは、一時中断したアプリケーションプログラムを再開するために必要なデータであり、CPU210B内のプログラムカウンタに代表されるレジスタ情報、調停回路内部の情報、アプリケーションプログラムが使用するRAM上の変数やスタック情報である。
【0028】
一方、待機系CPUモジュール110Cは、この時点で、ソフトウェアの待機遷移命令を発行して待機状態に遷移する(S540)。正常系CPUモジュール110Bでは、DMA制御部241Bに対してDMA転送開始を指示する(S550)。DMA制御部241Bは、正常系CPUモジュール110BのRAM230B上のデータを読み出し、CPUモジュール間専用バス340を介して異常系CPUモジュール110AのRAM230Aにデータを転送する(S551)。このときDMA指示部145により待機系CPUモジュール110Cのゲート回路242Cは閉じられている。又、正常系CPUモジュール110Bから異常系CPUモジュール110Aに対してデータ転送する方向にゲート回路242A、Bが方向制御されている。DMA転送が終了すると正常系CPUモジュール110Bでは、待機遷移命令が発行しされて待機状態に遷移する(S560)。一方、異常系CPUモジュール110Aでは、RAM230A上に転送されたデータの中からCPU及び調停回路内部データが読み出されて、それぞれ自系CPU210A及び調停回路240Aに設定される(S570)。設定後、待機系CPUモジュール110Cでは、待機遷移命令を発行して待機状態へ遷移する(S580)。
【0029】
CPUモジュール110の各々が待機状態になったことをCPU状態検出部147により検出されると(S590、S591、S592)、割込み生成部146が待機状態解除割込みをCPUモジュール110の各々に対して発行する(S593)。ここで、待機状態解除割込みは、先に発行しているデータ受信割込み、データ送信割込みよりも優先度の高い割込みとすることで各CPU210に対して多重割込みを認識させることが出来る。又、待機状態解除割込みをCPUモジュール110の各々に対して同じタイミングで入力することにより各CPUモジュールが待機状態から実行状態に遷移し、再び各CPU210が同期することが出来る。同期がとれると、待機状態解除割込みから復帰する。正常系CPUモジュール110B及び待機系CPUモジュール110Cでは、データ送信割込みの処理を再開される。同様に、異常系CPUモジュール110Aでも、データ受信割込みの処理に復帰する。待機遷移命令以後のソフトウェア命令を、データ送信割込み及びデータ受信割込みと共に同じ命令とすることにより、割込みのレベルは異なるものの処理の同期がとれる。各CPUモジュールの同期再開後にデータ送信割込み及びデータ受信割込みから復帰することにより、多数決回路においてエラーを検出した直後のアプリケーションプログラムに復帰することが出来る(S595)。多数決回路によりソフトエラーが検出された場合には、上述のように正常なCPUモジュール110Bのデータを転送することにより一致させる(以下、再構成と呼ぶ)。例えば、ソフトエラー訂正の難しいCPU内部のデータにソフトエラーが発生した場合にもそれまで実行していたアプリケーションプログラムを実行することが出来る。一方、CPUモジュールの再構成中に異常系CPUモジュールが応答しない恒久障害が発生することも考えられる。この場合、リセット生成部に備えられたタイムアウトカウンタ148により異常系CPUモジュールの障害を検出する。その後、マスタ選択部149によりマスタ選択を受けたCPUモジュールを、動作を継続するCPUモジュールとして定めて、他方のCPUモジュールおよび再構成中の障害を検出した異常系CPUモジュールについてはコントロールユニットに接続されたCPUモジュールの内部バスおよび制御信号が切り離す。これにより信頼度は低下するもののある一つのCPUモジュールに恒久障害が発生した場合にも、それまでのアプリケーションプログラムを継続することが出来る。
【0030】
図6は、正常系CPUモジュール及び待機系CPUモジュールの状態遷移について説明するシーケンス図である。
【0031】
通常はアプリケーションプログラムが動作しており(ステップS600)、多数決結果に異常が発生すると、異常系CPUモジュールよりデータ送信要求が発生するため、それまでのアプリケーションプログラムを一時停止してデータ送信割込みを実行する(S610)。待機系CPUモジュールではマスタ選択を受けていないため、直ちに待機遷移命令を発行して待機状態へ遷移する。
【0032】
一方、正常系CPUモジュールでは、まずCPU内部データをRAM上へ格納し、RAM上のデータを異常系CPUモジュールに転送した上で待機遷移命令を発行して待機状態へ遷移する(S620)。CPUモジュールの各々が待機状態に遷移したことをCPU状態検出部147が検出すると、更に上位の割込みである待機状態解除割込みを実行して各CPUモジュールの同期をとる。同期再開後は各割込み処理から順次復帰し(S640)、最終的にはそれまで実行してきたアプリケーションプログラムの処理を再開する(S650)。
【0033】
図7は、異常系CPUモジュールの状態遷移について説明するシーケンス図である。
【0034】
アプリケーションプログラムの動作中に、多数決回路141により異常が検出されると、リセット生成部144から異常系CPUモジュールに対してリセット信号が発行される。リセット信号により、異常系CPUモジュールではリセット処理を実行する(ステップS700)。リセット処理にてCPUや調停回路の初期設定が完了すると、マスタ選択部149にてマスタ選択を受けた正常系CPUモジュールに対してデータ要求割込みを発行するとともに、自CPUモジュールでもデータ受信割込みを実行する(S710)。正常系CPUモジュールからの受信データをCPUおよび調停回路に設定後、待機遷移命令を発行して待機状態へ遷移する(S720)。CPUモジュールの各々が待機状態に遷移したことをCPU状態検出部147が検出すると、更に上位の割込みである待機状態解除割込みを実行して各CPUモジュールの同期をとる。同期再開後は各割込み処理から順次復帰し(S740)、最終的には正常なCPUモジュールから転送されたデータを使用してそれまで実行してきたアプリケーションプログラムの処理を再開する(S750)。
【0035】
次に、本発明における恒久故障を検出した場合の流れについて説明する。図1において、多数決回路141により出力の不一致を検出された場合には、一過性障害時の処理が行われると共に、異常回数カウンタ143にその回数がカウントアップされる。異常回数カウンタは、図9に示すカウンタ回路により構成され、多数決結果が不一致であった場合には、CPUモジュール個別に多数決結果不一致フラグがカウンタに入力されることでカウントアップされる。このカウンタは、ある一定時間毎にクリアされて、その一定時間はCPUモジュール110のソフトエラー発生確率とCPUモジュールの再構成時間により決めることが出来る。一定時間内に多数決回路における不一致が頻発すると、異常回数カウンタよりCPUモジュール毎に恒久障害発生フラグが出力され、コントロールユニットに接続されたCPUモジュールの内部バスおよび制御信号が切り離す。一方、残り2つのCPUモジュールだけでは多数決回路が成立しないため、マスタ選択部149によりマスタ選択を受けたCPUモジュールを、動作を継続するCPUモジュールとして定めて、他方のCPUモジュールについてはコントロールユニットに接続されたCPUモジュールの内部バスおよび制御信号が切り離す。これにより、一つのCPUモジュールに恒久障害が発生した場合にも、それまでのアプリケーションプログラムを継続することが出来る。従って、CPUのバスサイクル毎に多数決処理を行う必要がない。
【0036】
【発明の効果】
本発明によれば、宇宙環境下で、低コストによる高信頼性かつ高性能なコンピュータシステムを実現することができる。
【図面の簡単な説明】
【図1】本発明によるコンピュータシステムを適用する人工衛星システムの簡略構成を示す図。
【図2】本発明によるコンピュータシステム100の構成を示す図。
【図3】CPUモジュール110に備える調停回路240の構成を示す図。
【図4】コントロールユニット140の構成を示す図。
【図5】一過性の障害が発生した時の動作を説明するシーケンス図。
【図6】正常系CPUモジュール及び待機系CPUモジュールの状態遷移について説明するシーケンス図。
【図7】異常系CPUモジュールの状態遷移について説明するシーケンス図。
【図8】マスタを選択する回路図。
【図9】異常回数カウンタの回路図。
【符号の説明】
100…コンピュータシステム、110…CPUモジュール、140…コントロールユニット、141…多数決回路、143…異常回数カウンタ、149…マスタ選択部、150…クロック供給源、210…CPU、220…ROM、230…RAM、240…調停回路。
【発明の属する技術分野】
本発明は、複数のプロセッサモジュールを有するコンピュータシステムに関する。
【0002】
【従来の技術】
近年、人工衛星システムに搭載されるコンピュータシステムの高信頼化が望まれている。しかし、衛星等の宇宙環境下では、地上における振動、温度、熱以外に放射線の影響を受ける。例えば、放射線に代表される高エネルギー粒子が、システム内のプロセッサやメモリ等の素子に影響を及ぼし、これらの素子に記憶されている情報(データ等)が反転してしまうという現象(シングルイベントアップセット(以下、SEU))が高頻度に発生する。
【0003】
従来、SEU発生の低減する方法として、例えば、耐放射線特性の良い素子を使用する方法が用いられている。耐放射線特性の良い素子とは、製造段階で、特殊プロセス(例えば、SOI(Silicon−On−Insulator)プロセス)を用いて製造した素子等である。
【0004】
又、SEU発生を低減する他の従来技術として、例えば、装置内のプロセッサにおいて、ある命令を複数回実行して、その出力結果を比較するようにしたものがある。
【0005】
【特許文献1】
特開平11−306083号公報
【0006】
【発明が解決しようとする課題】
昨今、人工衛星システムにおいて、コンピュータシステムによって制御される各種装置(例えば、観測装置)の高性能化が進んでいる。例えば、気象衛星によって観測、取得されるデータ量が多くなる傾向にある。それ故、上述の高信頼性と共に、観測装置によって取得されたデータを高速に処理する高性能なコンピュータシステムの必要性が高まってきている。
【0007】
しかしながら、耐放射線特性の良い素子を使用する従来方法では、生産期間の長期化や製品品種が限定され、多大なコストを要する。又、最先端の民生品と同様な高信頼性かつ高性能素子を得ることは極めて困難である。
【0008】
更に、装置内のプロセッサにおいて、ある命令を複数回実行して、その出力結果を比較するようにした従来技術では、ソフトウェアの規模が大きくなり、コスト高となる。
【0009】
本発明は、宇宙環境下で適用できる、低コストで高信頼性かつ高性能なコンピュータシステムを実現することにある。
【0010】
【課題を解決するための手段】
上記目的を達成するために、本発明によるコンピュータシステムは、民生の高性能プロセッサとメモリとこれらを調停する調停回路を備える複数のプロセッサモジュールと、これら複数のプロセッサモジュールと接続されたコントロールユニットとを有する。コントロールユニットは、複数のプロセッサモジュールの出力を多数決することにより、プロセッサモジュールの障害を検出する多数決手段と、該障害検出手段により検出された障害回数を計数する計数手段と、該計数手段による計数値を用いて障害種別を判別する判別手段と、を具備したことを特徴とする。判別手段は、上記計数値と予め決められたしきい値とから障害種別を判別し、計数値がしきい値を超えると、恒久性障害であると判断し、そうでない場合は一過性障害であると判断することを特徴する。
【0011】
又、本発明によるコンピュータシステムは、第1のプロセッサモジュールの恒久性障害を検出すると、該第1のプロセッサモジュールとの接続を切断し、予め決められた論理に基づき第2のプロセッサモジュールを選択する選択手段を更に備えたことを特徴とする。
【0012】
更に、本発明によるコンピュータシステムは、上記一過性の障害を検出すると、予め決められた論理に基き第2のプロセッサモジュールを選択し、該第2のプロセッサモジュールから必要な情報を上記第1のプロセッサモジュールに転送制御する転送制御手段を更に備えていることを特徴とする。
【0013】
【発明の実施の形態】
以下、本発明の実施例について図面を用いて説明する。 図1は、本発明によるコンピュータシステムを適用した人工衛星システムの簡略構成を示す図である。
【0014】
メインコンピュータ10は、バス40により、本発明による複数のコンピューシステム(100−1、100−2、…100−N)、蓄積装置20、送受信装置30と接続されており、これらを制御する。衛星。コンピュータシステムの各々(100−1、100−2、…100−N)は、観測装置(60−1、60−2、…60−N)を制御する。又、本発明によるコンピュータシステムは、高速プロセッサを有する複数のプロセッサモジュールを備えており、これらプロセッサモジュールの障害を多数決論理によって検出する(詳細は後述)。観測装置の各々は、宇宙を観測し、データを取り込む。取り込まれた観測データは、コンピュータシステム100等によって圧縮等の制御がなされる。蓄積装置20は、コンピュータシステム100等によって制御されたデータ等を一時蓄積する。送受信装置30は、地上におけるシステムとの通信を行い、例えば、蓄積装置20からデータを読み出し、地上システムに伝送する。
【0015】
図2は、コンピュータシステム100の構成を示す図である。
【0016】
コンピュータシステム100は、複数のプロセッサ(例えば、CPU)モジュール110(本実施例では、110A、110B、110C)と、これらに内部バス320により接続されたコントロールユニット140と、クロック供給源150とを備えている。
【0017】
CPUモジュール110の各々は、CPU(プロセッサ)210と、CPU210が実行するプログラムを格納するメモリ(例えば、ROM220)と、データ等の情報を記憶するメモリ(例えば、RAM230)と、これらの素子を調停する調停回路240とを備えている。調停回路240及びROM220は、内部バス310によりコントロールユニット140と接続されている。又、CPUモジュール110間は、専用バス340により接続されている。本実施例におけるCPU210は、民生用の高速かつ高性能なものを使用している。
【0018】
コントロールユニット140は、CPUモジュール110から出力されるデータを多数決して障害を検出する多数決回路141と、検出された障害をカウント(計数)すると共に、障害種別を判別する異常回数カウンタ143と、分配回路142等を備えている(詳細は後述)。多数決回路の出力は、外部バス350を介してコンピュータシステム100と接続される装置(機器)等に出力される。外部装置から外部バス350を介して入力されたデータは、分配回路142により、内部バス310、320、330を介して各CPUモジュールに分配される。又、CPUモジュール110とコントロールユニット140は、クロック供給源150から出力される共通クロックにより動作しており、各CPUモジュールは、同じソフトウェア命令を実行している状態にある。
【0019】
以上の構成により、本実施例では、例えば、ある1つのCPUモジュールにおいて、SEUの影響によってソフトエラーが発生し、出力データの異常や出力タイミングの位相ずれ等が発生すると、上述の多数決回路141によって、これらの異常(障害)を検出することができる。この異常検出は、異常回数カウンタ143によってカウントされる。又、異常回数カウンタ143は、カウント値が予め決められたしきい値を超えると、発生した障害が恒久性障害と認識し、そうでない場合は、一過性障害と認識する。以下、本実施例では、しきい値とは、例えば、ある単位時間あたりに異常回数のカウントがN回を超えた時とする。単位時間及びカウント回数は、CPUモジュールに備えるCPU210、ROM220、RAM230、調停回路240等の放射線特性や、宇宙用コンピュータシステムを搭載する人工衛星の軌道情報等に基づき決定される。
【0020】
図3は、CPUモジュール110に備える調停回路240の構成を示す図である。
【0021】
調停回路240は、RAM230と接続されるDMA制御部241と専用バス340と接続されるゲート回路242とを備えている。上記構成により、CPUモジュール間でRAM230に記憶されている情報(データ)の転送が可能となる。なお、ゲート回路242は、コントロールユニット140によって方向制御等がなされる。
【0022】
図4は、コントロールユニット140の構成を示す図である。
【0023】
コントロールユニット140は、上述の多数決回路141、分配回路142、異常回数カウンタ143以外に,リセット生成部144と、DMA指示部145と、割り込み生成部146と、CPU状態検出部147と、マスタ選択部149とを備えている。
【0024】
リセット生成部144は、多数決回路141により検出した異常CPUモジュールをリセット(初期化)する。
又、リセット生成部144は、リセット後のCPUモジュールの動作の有無を確認するためのタイムアウトカウンタ148を備えている。DMA指示部145は、後述のデータ送信割り込み指示、及びデータ受信割り込み指示を割込生成部146に対して行う。又、DMA指示部145は、各CPUモジュール110に備えるDMA制御部241に対してDMA転送制御等の指示を行う。マスタ選択部149は、図8に示される論理回路によって、多数決回路141によりCPUモジュール(例えば、110A)の異常が検出されると、その他のCPUモジュール(110B、110C)から正常なデータを転送可能なCPUモジュールを一意に決める。割込生成部146は、外部バス350からの割込み要求、及びDMA指示部145からの割込み要求を受けて、各CPUモジュール110内に備えるCPU210に対して割込み信号を出力する。CPU状態検出部147は、各CPUモジュール110内のCPU210が待機状態に遷移したことを検出する。
【0025】
図5は、一過性の障害が発生した時の動作を説明するシーケンス図である。
【0026】
ここで、多数決回路141により異常が検出されたCPUモジュール(例えば、110A)を異常系CPUモジュール、多数決回路141に正常出力を行い、かつマスタ選択部149により一意に決められたCPUモジュール(例えば、110B)を正常系CPUモジュール、その他の正常なCPUモジュール(例えば、110C)を待機系モジュール、と定義する。
【0027】
各CPUモジュールは、多数決回路141にデータを出力する(ステップS500A、500B、500C)。多数決回路141は、これらの出力データを多数決し異常データを検出すると(S510)、異常データを出力した異常系CPUモジュール110Aに対してリセット信号を発行する。リセット信号により、異常系モジュール110Bは、初期化される(S520)。異常系CPUモジュール110Aは、初期化後、正常系CPUモジュール110Bに備えるCPU内部情報、RAMに記憶されている情報を受け取るため、DMA指示部145に対してデータ要求指示を行う(S521)。DMA指示部145がデータ要求指示を受けると、割込生成部146に対して、データ送信割込みの発行を指示する。これは、正常系モジュール110A及び待機系CPUモジュール110Cに対して、それまで実行していたアプリケーションプログラムを一時中断の要求を行うためである。又、この時、異常系モジュール110Aに対してもデータ受信割込みの発行を指示して、正常系CPUモジュール110Bからのデータ転送にそなえる。正常系CPUモジュール110B及び待機系CPUモジュール110Cは、データ送信割込みの処理中にマスタ選択の有無を判定する。マスタ選択を受けている正常系CPUモジュール110Bは、自CPUモジュール内のCPU210Bと調停回路240B内のデータをRAM230B上へ格納する(S530)。ここで、RAM230B上のデータは、一時中断したアプリケーションプログラムを再開するために必要なデータであり、CPU210B内のプログラムカウンタに代表されるレジスタ情報、調停回路内部の情報、アプリケーションプログラムが使用するRAM上の変数やスタック情報である。
【0028】
一方、待機系CPUモジュール110Cは、この時点で、ソフトウェアの待機遷移命令を発行して待機状態に遷移する(S540)。正常系CPUモジュール110Bでは、DMA制御部241Bに対してDMA転送開始を指示する(S550)。DMA制御部241Bは、正常系CPUモジュール110BのRAM230B上のデータを読み出し、CPUモジュール間専用バス340を介して異常系CPUモジュール110AのRAM230Aにデータを転送する(S551)。このときDMA指示部145により待機系CPUモジュール110Cのゲート回路242Cは閉じられている。又、正常系CPUモジュール110Bから異常系CPUモジュール110Aに対してデータ転送する方向にゲート回路242A、Bが方向制御されている。DMA転送が終了すると正常系CPUモジュール110Bでは、待機遷移命令が発行しされて待機状態に遷移する(S560)。一方、異常系CPUモジュール110Aでは、RAM230A上に転送されたデータの中からCPU及び調停回路内部データが読み出されて、それぞれ自系CPU210A及び調停回路240Aに設定される(S570)。設定後、待機系CPUモジュール110Cでは、待機遷移命令を発行して待機状態へ遷移する(S580)。
【0029】
CPUモジュール110の各々が待機状態になったことをCPU状態検出部147により検出されると(S590、S591、S592)、割込み生成部146が待機状態解除割込みをCPUモジュール110の各々に対して発行する(S593)。ここで、待機状態解除割込みは、先に発行しているデータ受信割込み、データ送信割込みよりも優先度の高い割込みとすることで各CPU210に対して多重割込みを認識させることが出来る。又、待機状態解除割込みをCPUモジュール110の各々に対して同じタイミングで入力することにより各CPUモジュールが待機状態から実行状態に遷移し、再び各CPU210が同期することが出来る。同期がとれると、待機状態解除割込みから復帰する。正常系CPUモジュール110B及び待機系CPUモジュール110Cでは、データ送信割込みの処理を再開される。同様に、異常系CPUモジュール110Aでも、データ受信割込みの処理に復帰する。待機遷移命令以後のソフトウェア命令を、データ送信割込み及びデータ受信割込みと共に同じ命令とすることにより、割込みのレベルは異なるものの処理の同期がとれる。各CPUモジュールの同期再開後にデータ送信割込み及びデータ受信割込みから復帰することにより、多数決回路においてエラーを検出した直後のアプリケーションプログラムに復帰することが出来る(S595)。多数決回路によりソフトエラーが検出された場合には、上述のように正常なCPUモジュール110Bのデータを転送することにより一致させる(以下、再構成と呼ぶ)。例えば、ソフトエラー訂正の難しいCPU内部のデータにソフトエラーが発生した場合にもそれまで実行していたアプリケーションプログラムを実行することが出来る。一方、CPUモジュールの再構成中に異常系CPUモジュールが応答しない恒久障害が発生することも考えられる。この場合、リセット生成部に備えられたタイムアウトカウンタ148により異常系CPUモジュールの障害を検出する。その後、マスタ選択部149によりマスタ選択を受けたCPUモジュールを、動作を継続するCPUモジュールとして定めて、他方のCPUモジュールおよび再構成中の障害を検出した異常系CPUモジュールについてはコントロールユニットに接続されたCPUモジュールの内部バスおよび制御信号が切り離す。これにより信頼度は低下するもののある一つのCPUモジュールに恒久障害が発生した場合にも、それまでのアプリケーションプログラムを継続することが出来る。
【0030】
図6は、正常系CPUモジュール及び待機系CPUモジュールの状態遷移について説明するシーケンス図である。
【0031】
通常はアプリケーションプログラムが動作しており(ステップS600)、多数決結果に異常が発生すると、異常系CPUモジュールよりデータ送信要求が発生するため、それまでのアプリケーションプログラムを一時停止してデータ送信割込みを実行する(S610)。待機系CPUモジュールではマスタ選択を受けていないため、直ちに待機遷移命令を発行して待機状態へ遷移する。
【0032】
一方、正常系CPUモジュールでは、まずCPU内部データをRAM上へ格納し、RAM上のデータを異常系CPUモジュールに転送した上で待機遷移命令を発行して待機状態へ遷移する(S620)。CPUモジュールの各々が待機状態に遷移したことをCPU状態検出部147が検出すると、更に上位の割込みである待機状態解除割込みを実行して各CPUモジュールの同期をとる。同期再開後は各割込み処理から順次復帰し(S640)、最終的にはそれまで実行してきたアプリケーションプログラムの処理を再開する(S650)。
【0033】
図7は、異常系CPUモジュールの状態遷移について説明するシーケンス図である。
【0034】
アプリケーションプログラムの動作中に、多数決回路141により異常が検出されると、リセット生成部144から異常系CPUモジュールに対してリセット信号が発行される。リセット信号により、異常系CPUモジュールではリセット処理を実行する(ステップS700)。リセット処理にてCPUや調停回路の初期設定が完了すると、マスタ選択部149にてマスタ選択を受けた正常系CPUモジュールに対してデータ要求割込みを発行するとともに、自CPUモジュールでもデータ受信割込みを実行する(S710)。正常系CPUモジュールからの受信データをCPUおよび調停回路に設定後、待機遷移命令を発行して待機状態へ遷移する(S720)。CPUモジュールの各々が待機状態に遷移したことをCPU状態検出部147が検出すると、更に上位の割込みである待機状態解除割込みを実行して各CPUモジュールの同期をとる。同期再開後は各割込み処理から順次復帰し(S740)、最終的には正常なCPUモジュールから転送されたデータを使用してそれまで実行してきたアプリケーションプログラムの処理を再開する(S750)。
【0035】
次に、本発明における恒久故障を検出した場合の流れについて説明する。図1において、多数決回路141により出力の不一致を検出された場合には、一過性障害時の処理が行われると共に、異常回数カウンタ143にその回数がカウントアップされる。異常回数カウンタは、図9に示すカウンタ回路により構成され、多数決結果が不一致であった場合には、CPUモジュール個別に多数決結果不一致フラグがカウンタに入力されることでカウントアップされる。このカウンタは、ある一定時間毎にクリアされて、その一定時間はCPUモジュール110のソフトエラー発生確率とCPUモジュールの再構成時間により決めることが出来る。一定時間内に多数決回路における不一致が頻発すると、異常回数カウンタよりCPUモジュール毎に恒久障害発生フラグが出力され、コントロールユニットに接続されたCPUモジュールの内部バスおよび制御信号が切り離す。一方、残り2つのCPUモジュールだけでは多数決回路が成立しないため、マスタ選択部149によりマスタ選択を受けたCPUモジュールを、動作を継続するCPUモジュールとして定めて、他方のCPUモジュールについてはコントロールユニットに接続されたCPUモジュールの内部バスおよび制御信号が切り離す。これにより、一つのCPUモジュールに恒久障害が発生した場合にも、それまでのアプリケーションプログラムを継続することが出来る。従って、CPUのバスサイクル毎に多数決処理を行う必要がない。
【0036】
【発明の効果】
本発明によれば、宇宙環境下で、低コストによる高信頼性かつ高性能なコンピュータシステムを実現することができる。
【図面の簡単な説明】
【図1】本発明によるコンピュータシステムを適用する人工衛星システムの簡略構成を示す図。
【図2】本発明によるコンピュータシステム100の構成を示す図。
【図3】CPUモジュール110に備える調停回路240の構成を示す図。
【図4】コントロールユニット140の構成を示す図。
【図5】一過性の障害が発生した時の動作を説明するシーケンス図。
【図6】正常系CPUモジュール及び待機系CPUモジュールの状態遷移について説明するシーケンス図。
【図7】異常系CPUモジュールの状態遷移について説明するシーケンス図。
【図8】マスタを選択する回路図。
【図9】異常回数カウンタの回路図。
【符号の説明】
100…コンピュータシステム、110…CPUモジュール、140…コントロールユニット、141…多数決回路、143…異常回数カウンタ、149…マスタ選択部、150…クロック供給源、210…CPU、220…ROM、230…RAM、240…調停回路。
Claims (6)
- プロセッサとメモリとこれらを調停する調停回路を備える複数のプロセッサモジュールと、該複数のプロセッサモジュールと接続されたコントロールユニットと、を有し、
前記コントロールユニットは、前記複数のプロセッサモジュールの出力を多数決して前記プロセッサモジュールの障害を検出する多数決手段と、該障害検出手段により検出された障害回数を計数する計数手段と、該計数手段による計数値を用いて前記障害種別を判別する判別手段と、を具備したことを特徴とするコンピュータシステム。 - 前記判別手段は、前記計数値と予め決められたしきい値とから前記障害種別を判別することを特徴とする請求項1に記載のコンピュータシステム。
- 前記判別手段は、前記計数値が前記しきい値を超えると、前記障害種別が恒久性障害であると判断し、そうでない場合は一過性障害であると判断することを特徴とする請求項3に記載のコンピュータシステム。
- 前記コントロールユニットは、第1のプロセッサモジュールの恒久性障害を検出すると、該第1のプロセッサモジュールとの接続を切断し、予め決められた論理に基づき第2のプロセッサモジュールを選択する選択手段を更に備えたことを特徴とする請求項3に記載のコンピュータシステム。
- 前記コントロールユニットは、第1のプロセッサモジュールの一過性障害を検出すると、予め決められた論理に基き第2のプロセッサモジュールを選択し、該第2のプロセッサモジュールから必要な情報を前記第1のプロセッサモジュールに転送制御する転送制御手段を更に備えたことを特徴とする請求項3に記載のコンピュータシステム。
- 前記一過性障害が検出されると、前記プロセッサモジュールの各々を待機状態に遷移させる状態遷移手段と、該状態遷移手段により遷移された状態を検出する状態検出手段と、該状態検出手段により状態が検出された後、前記プロセッサモジュールの各々を同期させる同期手段と、を更に有することを特徴とする請求項3乃至請求項5に記載のコンピュータシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002294374A JP2004133496A (ja) | 2002-10-08 | 2002-10-08 | コンピュータシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002294374A JP2004133496A (ja) | 2002-10-08 | 2002-10-08 | コンピュータシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004133496A true JP2004133496A (ja) | 2004-04-30 |
Family
ID=32284931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002294374A Pending JP2004133496A (ja) | 2002-10-08 | 2002-10-08 | コンピュータシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004133496A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009534738A (ja) * | 2006-04-21 | 2009-09-24 | ハネウェル・インターナショナル・インコーポレーテッド | フォールト・トレランス・コンピューティング・システムにおけるエラー・フィルタリング |
JP2012118725A (ja) * | 2010-11-30 | 2012-06-21 | Mitsubishi Electric Corp | エラー検出修復装置 |
WO2012114498A1 (ja) * | 2011-02-24 | 2012-08-30 | 富士通株式会社 | 情報処理装置 |
JP2013206265A (ja) * | 2012-03-29 | 2013-10-07 | Fujitsu Semiconductor Ltd | フォールトトレラント制御装置、フォールトトレラントシステムの制御方法 |
JPWO2012101759A1 (ja) * | 2011-01-25 | 2014-06-30 | 富士通株式会社 | プロセッサ処理方法、およびプロセッサシステム |
JPWO2016013199A1 (ja) * | 2014-07-22 | 2017-05-25 | 日本電気株式会社 | 仮想化基盤管理装置、仮想化基盤管理システム、仮想化基盤管理方法、及び、仮想化基盤管理プログラム |
-
2002
- 2002-10-08 JP JP2002294374A patent/JP2004133496A/ja active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009534738A (ja) * | 2006-04-21 | 2009-09-24 | ハネウェル・インターナショナル・インコーポレーテッド | フォールト・トレランス・コンピューティング・システムにおけるエラー・フィルタリング |
JP2012118725A (ja) * | 2010-11-30 | 2012-06-21 | Mitsubishi Electric Corp | エラー検出修復装置 |
JPWO2012101759A1 (ja) * | 2011-01-25 | 2014-06-30 | 富士通株式会社 | プロセッサ処理方法、およびプロセッサシステム |
JP5704176B2 (ja) * | 2011-01-25 | 2015-04-22 | 富士通株式会社 | プロセッサ処理方法、およびプロセッサシステム |
WO2012114498A1 (ja) * | 2011-02-24 | 2012-08-30 | 富士通株式会社 | 情報処理装置 |
JP5733384B2 (ja) * | 2011-02-24 | 2015-06-10 | 富士通株式会社 | 情報処理装置 |
JP2013206265A (ja) * | 2012-03-29 | 2013-10-07 | Fujitsu Semiconductor Ltd | フォールトトレラント制御装置、フォールトトレラントシステムの制御方法 |
JPWO2016013199A1 (ja) * | 2014-07-22 | 2017-05-25 | 日本電気株式会社 | 仮想化基盤管理装置、仮想化基盤管理システム、仮想化基盤管理方法、及び、仮想化基盤管理プログラム |
US10353786B2 (en) | 2014-07-22 | 2019-07-16 | Nec Corporation | Virtualization substrate management device, virtualization substrate management system, virtualization substrate management method, and recording medium for recording virtualization substrate management program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1380952B1 (en) | Fault-tolerant computer system, re-synchronization method thereof and re-synchronization program thereof | |
EP1380953B1 (en) | Fault-tolerant computer system, re-synchronization method thereof and re-synchronization program thereof | |
EP3607704A1 (en) | A method for sharing a can bus between a plurality of nodes, a circuit comprising a can bus and a plurality of nodes, and an electric aircraft with such a circuit | |
CN101271332B (zh) | 紧凑型一体化冗余控制器及其控制方法 | |
US5572620A (en) | Fault-tolerant voter system for output data from a plurality of non-synchronized redundant processors | |
JP2002517819A (ja) | 耐障害性演算用の冗長コンピュータ・ベース・システムを管理するための方法及び装置 | |
US20130262917A1 (en) | Redundant system control method | |
US7653764B2 (en) | Fault-tolerant computer and method of controlling data transmission | |
US7971098B2 (en) | Bootstrap device and methods thereof | |
WO2008146091A1 (en) | Data processing system, data processing method, and apparatus | |
CN114490194B (zh) | 掉电处理方法、功能节点、处理系统、设备和存储介质 | |
US20090193229A1 (en) | High-integrity computation architecture with multiple supervised resources | |
JP2004133496A (ja) | コンピュータシステム | |
US20060047862A1 (en) | Automatic hardware data link initialization | |
JP3821806B2 (ja) | フォールトトレラントコンピュータ、そのトランザクション同期制御方法及びプログラム | |
US20070220296A1 (en) | Data processing apparatus | |
JP2004046507A (ja) | 情報処理装置 | |
CA2435001C (en) | Fault-tolerant computer system, re-synchronization method thereof and re-synchronization program thereof | |
US20200065200A1 (en) | Counter circuitry and methods | |
JPH086800A (ja) | データ処理装置及びマイクロプロセッサ | |
JP3415636B2 (ja) | プロセッサ装置 | |
JP2002312333A (ja) | マルチプロセッサ初期化/並行診断方法 | |
JPH05216855A (ja) | マルチcpu制御方式 | |
JP4640359B2 (ja) | フォールトトレラントコンピュータ、フォールトトレラントコンピュータにおける同期制御方法 | |
JPH0462081B2 (ja) |